学习
解决方案 »
- 摄像头捕获的视频数据用什么编码解码器对数据进行压缩和解压缩以便网络传输啊?
- 通过ODBC方式连接数据库,如何查询数据库中存在多少schema?
- session问题
- 如何实现for循环每秒执行1次,用timer控件实现,不用Thread,给100分
- c#中怎样调用其它可执行文件?
- 关于SQLDMO的问题,用SQLDMO创建表的时候怎样添加主键???
- C#中如何动态设置一个数组的长度?
- label付值的问题??(急)
- 是不是COM技术不流行了??
- ● 请问在VC#里让dataGrid只显示DataSet的一些列?
- Java真是太利害了,函数里还可以包含函数,C#如何实现他的功能呢?请高手指教。谢谢!!!
- 怎么在dataGrid来删除指定行?
static - 这个成员不需要实例化即可使用
readonly - 这个成员只能在“类初始化”时赋值所谓的“类初始化”,是下面两者之一
1) 直接在定义后面写值,例如
private static readonly Hashtable SharedHashtable = new Hashtable();
2) 在“类构造函数”里写值,例如
static ClassName() {
SharedHashtable = new Hashtable();
}如果看 1),感觉上好像跟 const 有点联系,但是 const 是在编译的时候就计算结果的,这样的话,多数引用类型都无法赋值——new 操作符只能在运行时使用。我所知道的可以写到 const 字段的引用类型就只有字符串一种。static readonly 的话,在第一次访问该类的时候才赋值,所以能用new,如上述例子最后,const隐含static的语义,所以只需要写private const即可
//效果等同与const
1。静态方面 const是编译时静态,readonly是运行时多态
2。初始化方面 const变量在声明的同时就要求赋值,而readonly变量则可以推迟进行初始化。
3。类型方面 const修饰的数据类型是简单类型,而readonly即可以是简单类型也可以是引用类型。
1。静态方面 const是编译时静态,readonly是运行时静态。这就印证了2。初始化 的内容 由于const变量必须在编译的时候确定所有在声明const变量的同时就必须要对它赋值,而readonly是运行时的静态,它不需要在声明的同时给它赋值..
a.dll 中class1 中,定义public const int i = 10;在project b中,引用a.dll
Console.WriteLine(class1.i);输出结果是10;这个时候修改a.dll中的class1的i为20,重新编译a然后运行b,结果仍旧是10
这就是所谓的编译嵌入
修改a.dll中的public const 为public static readonly
重新试验上面的步骤,即可得出结果为10,20这是所谓的动态加载