|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
觉得J2EE好像有很多工具,比如servlet,jboss,tomcat,ejb什么的,可是微软的.NET怎么什么也没有啊?</p>利用主动属性后,你能够不必手工声明一个公有成员变量和编写get/set逻辑,取而代之的是,编译器会主动为你天生一个公有变量和默许的get/set操纵。体系为你发生的公有变量在IDE中,你是看不到的,以下图:
固然假如你但愿属性中有些赋值大概取值逻辑校验,主动属性但是不合适你的。
下面的代码我们编译后,再用Reflector反编译后,我们能够看到上述代码中的属性酿成了以下代码:这个编译器给我们发生的公有变量,明显不是那末简单重名的。
[CompilerGenerated]
privatestringk__AutomaticallyGeneratedPropertyField0;
publicstringName
{
[CompilerGenerated]
get
{
returnthis.k__AutomaticallyGeneratedPropertyField0;
}
[CompilerGenerated]
set
{
this.k__AutomaticallyGeneratedPropertyField0=value;
}
}
注重:假如你只但愿属性有get大概set办法,这些情形都是没法利用主动属性的,必要你本人来誊写。不然就会报以下的毛病:
"ConsoleApplication1.MyClass.Name.set"mustdeclareabodybecauseitisnotmarkedabstractorextern.Automaticallyimplementedpropertiesmustdefinebothgetandsetaccessors.
可是get和set会见级别纷歧样,好比一个是public,一个是internal,则能够誊写成下述体例,而不会报毛病。
publicintID{get;internalset;}
<p>其实Java之所以在曾经独步天下,就是因为他的跨平台、安全性,这两方面,效率可不是Java的强项,反而是他最短的一块挡板,虽然net总是用理论证明比.NET快。 |
|