(9)C#类
一、访问修饰符
1.修饰符
public 所有都能访问
private 只能在本类中使用
protected 当前类和所有子类可以访问
internal 本程序集内使用
protected internal 本程序集,或者当前类的子类可以访问
private protected 访问限于当前类或当前程序集中此类的子类 C#7.2以上版本
注意:
未嵌套在其他类型中的顶级类型只能具有 internal 或 public 可访问性。 这些类型的默认可访问性为 internal
2.类的默认修饰符
类中所有成员默认是 private
所有成员可以是任意修饰符
3.接口的默认修饰符
接口中所有默认public
所有成员不能自己填写修饰符,只能是默认的public
4.枚举默认修饰符
枚举所有默认public
和接口一样,所有成员不能自己填写修饰符,只能是默认的public
5.结构默认修饰符
结构所有默认private
手动填写的修饰符只能是 public internal private
嵌套类的访问域不能超过上层
参考 https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/accessibility-levels
三、构造器
构造器是一个与类名相同的方法
public Test() { }
每当对类行进一次初始化时,都会调用构造函数。
这个无参的构造函数可以不写,系统运行时会自动生成,虽然我们看不到。
4、重载构造器
和普通函数一样,构造函数也能够被重载。
一旦为一个类写了任何构造器,编译器就不会在自动生成默认构造器。
public Test(int a,int b) { }
即便是有了有参数的构造函数,尽量也要写个无参构造因为当你在实例化一个无参数的对象时可能会报错
Test me=new Test();//如果没有无参构造函数,就会报错
5.
const
const 用来修饰数值和字符串 使其保持不变,字段只能在该字段的声明中初始化。
const 是静态的,不需要也不允许static 来修饰。
当给s重新赋值时,vs会给出错误提示
readonly