|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
在VC.net的版本上,为了让C++运行在.NETFramework中,微软为C++引进了托管,就是托管C++(ManagedC++),这个根本就没有流行起来,自托管C++产生以后就没有收到过好评。ado|区分const和readonly的区分,老是不太分明,因而查了查材料。
const的观点就是一个包括不克不及修正的值的变量。
常数表达式是在编译时可被完整盘算的表达式。因而不克不及从一个变量中提取的值来初始化常量。
假如constinta=b+1;b是一个变量,明显不克不及再编译时就盘算出了局,以是常量是不成以用变量来初始化的。
readonly同意把一个字段设置成常量,但能够实行一些运算,能够断定它的初始值。
由于readonly是在盘算时实行的,固然它能够用某些变量初始化。
readonly是实例成员,以是分歧的实例能够有分歧的常量值,这使readonly更天真。
readonly关头字与const关头字分歧。
1.const字段只能在该字段的声明中初始化。
readonly字段能够在声明或机关函数中初始化。因而,依据所利用的机关函数,readonly字段大概具有分歧的值。
2.const字段是编译经常数,而readonly字段可用于运转经常数。
3.const默许就是静态的,而readonly假如设置成静态的就必需显现声明。
4.const关于援用范例的常数,大概的值只能是string和null。
readonly能够是任何范例
*必要注重的一个成绩是:
关于一个readonly的Reference范例,只是被限制不克不及举行赋值(写)操纵罢了。而对其成员的读写仍旧是不受限定的。
publicstaticreadonlyClass1my=newClass1();
…
my.SomeProperty=10;//一般
my=newClass1();//堕落,该工具是只读的
可是,假如上例中的Class1不是一个Class而是一个struct,那末前面的两个语句就城市堕落。
staticreadonly:
Java中static是当载进一个类时实行一次的。
C#中是怎样实行的,我没有查到。很奇异几近每本java的书城市说static的成绩,C#的常常只说怎样用,可是应当是在main函数挪用之前初始化,以是staticreadonly也是运转时的,能够用变量付值,如:
privatestaticreadonlystringpath=System.Windows.Forms.Application.StartupPath+“aaa”;
c语言的编译器,几乎是所有新平台都有的。因此从这点上看,c语言的程序,比其他任何语言更加容易跨平台。 |
|