C# 访问修饰符
提示
- 作用与应用:C# 访问修饰符定义了类、接口和其成员(如字段、方法)的可访问性,控制着从哪里可以访问这些资源。
- 访问修饰符种类:C# 包含四种主要访问修饰符:public(公开访问)、private(私有访问)、protected(受保护访问)、internal(程序集内访问),及其组合形式,以提供不同级别的访问控制。
- 使用场景示例:例如,
public
类型成员可在任何地方访问,而private
成员仅在其所在类中访问,protected
成员在其类及派生类中访问,internal
成员在同一程序集中访问。
在 C# 中,访问修饰符用于指定类型(如类、接口等)和类型成员(如字段、方法等)的可访问性。例如,
class Student {
public string name;
private int num;
}
这里,
name
- 公共字段,可以从任何地方访问num
- 私有字段,只能在Student
类内部访问
访问修饰符的类型
在 C# 中,基本上有 4 种类型的访问修饰符。
- public
- private
- protected
- internal
1. public 访问修饰符
当我们将类型或类型成员声明为 public
时,它可以从任何地方被访问。例如,
using System;
namespace MyApplication {
class Student {
public string name = "Sheeran";
public void print() {
Console.WriteLine("Hello from Student class");
}
}
class Program {
static void Main(string[] args) {
// 创建 Student 类的对象
Student student1 = new Student();
// 访问 name 字段并打印
Console.WriteLine("Name: " + student1.name);
// 从 Student 中访问 print 方法
student1.print();
Console.ReadLine();
}
}
}
输出
Name: Sheeran
Hello from Student class
在上面的示例中,我们创建了一个名为 Student
的类,其中包含字段 name
和方法 print()
。
// 访问 name 字段并打印
Console.WriteLine("Name: " + student1.name);
// 从 Student 中访问 print 方法
student1.print();
由于字段和方法是公开的,我们能够从 Program
类中访问它们。
注意:我们使用了 Student
类的对象 student1
来访问其成员。要了解更多,请访问 C# 类和对象。
2. private 访问修饰符
当我们使用 private
访问修饰符声明一个类型成员时,它只能在相同的 class
或 struct
内部被访问。例如,
using System;
namespace MyApplication {
class Student {
private string name = "Sheeran";
private void print() {
Console.WriteLine("Hello from Student class");
}
}
class Program {
static void Main(string[] args) {
// 创建 Student 类的对象
Student student1 = new Student();
// 访问 name 字段并打印
Console.WriteLine("Name: " + student1.name);
// 从 Student 中访问 print 方法
student1.print();
Console.ReadLine();
}
}
}
在上面的示例中,我们创建了一个名为 Student
的类,其中包含字段 name
和方法 print()
。
// 访问 name 字段并打印
Console.WriteLine("Name: " + student1.name);
// 从 Student 类中访问 print 方法
student1.print();
由于字段和方法是私有的,我们无法从 Program
类中访问它们。这里,代码将生成以下错误。
**错误** CS0122 'Student.name' 由于其保护级别而无法访问
**错误** CS0122 'Student.print()' 由于其保护级别而无法访问