类型的各种成员
讲到了很多C#基本类型,当然确实比较基础...
private const int n = 1; //常量
private readonly int n = 1; //只读字段
private static int n = 1; //静态字段
//类型构造器
static a()
//实例构造器
public a()
public string a1() //实例方法
public static a2() //静态方法
public int i { get { return 0; } set {} } //属性
public int this[string s] { get { return 0; } set { } } //索引器
关于类型访问
友元程序集(friend assembly)
比如一些特殊的方法 你不想完全公开,而你的合作伙伴之类的又要使用到
使用System.Runtime.CompilerServices 中InternalsVisibleTo 的attribute 来表明
然友源程序集就能访问 所有internal
using System;
using System.Runtime.CompilerServices;
[assembly:InternalsVisibleTo("Wintellect,Publickey=asdadasdasda")]
//这里会报一个警告
//警告 1 “assembly”不是此声明的有效特性位置。此声明的有效特性位置是“type”。此块中的所有特性都将被忽略。
internal class a { } //就可以访问啦..
ps: 这种情况其实很少,而且友元程序集只适合在发布时间相同的程序集, 如果错开时间太久,容易造成兼容性问题
成员可访问性
其实就是 public protected internal private
关于静态类
首先 static 不能应用于结构 因为clr 总是允许值类型实例化~
1. 静态类必须从 System.Object 派生, 也就是说你不能继承.
2. 不能实现接口..
3. 内部自然就必须全部静态成员
4. 不能作为参数 局部变量 字段
public static int a
{
}
编译器在编译的时候将 a 同时标记为 abstract sealed
关于部分类
这玩意儿,虽然一直都知道他.. 但是实际中确实没有用到过. 唯一能想象的情况 就是代码生成的时候用用