马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
我见过net网页编程运行在手机上,包括很廉价的山寨手机,但是却暂时没发现.net在手机上有什么作为。wp7可能是个转机,但是按照《net网页编程的跨平台就是一句谎言。那.net的跨平台也当之无愧是一句谎言。在写程序的时分,常常会呈现为一个范例供应分歧场景的机关函数,大概年夜多机关函数对照类似,而C#中又不同意缺省参数,因而机关函数的编写无疑是一个反复事情。可是利用Copy和Paste来完成机关函数的编写,偶然候很难到达一致,特别是当做员产生变更的时分。因而对照罕见的交换办法就是为机关函数供应一个一致的成员函数来完成初始化事情。- publicclassMyClass{privateint_Age;privatestring_Name;publicMyClass(stringName){InitMember(Name,20);}publicMyClass(stringName,intAge){InitMember(Name,Age);}///<summary>///Initclassmembers///</summary>///<paramnameparamname="Name"></param>///<paramnameparamname="Age"></param>privatevoidInitMember(stringName,intAge){_Age=Age;_Name=Name;}}
复制代码 不外,在C#中供应了更加简明的办法,就是在机关函数初始化语句中挪用另外一机关函数,那末下面的情势能够改写为以下如许。- publicclassMyClass{privateint_Age;privatestring_Name;publicMyClass(stringName):this(Name,20){}publicMyClass(stringName,intAge){_Age=Age;_Name=Name;}}
复制代码 关于这二者来讲,实行效力没有太年夜不同,但从代码质量而言,后者要好良多,并且会使代码看起来更明晰。
其次,关于基类的挪用。因为成员函数不克不及挪用基类的机关函数,以是关于第一种编写就对照坚苦,后者就复杂多了。- publicclassMyClass:BaseClass{privateint_Age;privatestring_Name;publicMyClass(stringName):this(Name,20){}publicMyClass(stringName,intAge):base(Name,Age){_Age=Age;_Name=Name;}}
复制代码 这里要提的一点就是机关函数初始化语句,关于“this”大概“base”之类的挪用只能有一个,不克不及并存。
最初,就是关于readonly常量的初始化,因为readonly常量只能经由过程成员初始化语句大概在机关函数中被修正,因而在成员函数中没法修正readonly常量,这也是机关函数初始化语句要比成员函数好的主要一个要素。
有了下面的申明,关于二者的对照,能够构成以下这个复杂的对照表。以上先容C#中机关函数和成员函数。
我觉得这个学习方法很重要。初学者应该跟我一样有同样一个毛病。那就是急于求成。很想就自己做出个小小的系统来。可真要动手,却又茫然而不知所措。为什么会这样呢?因为我们没有耐心去学习基础知识。写根本看不到什么效果的测试代码。 |