仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1162|回复: 8
打印 上一主题 下一主题

[学习教程] ASP.NET网页设计C#规语:利用机关函数初始化语句

[复制链接]
灵魂腐蚀 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:45:49 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
你可以先看看这篇文章(软微学院生涯-三朝元老经验谈),打不开再跟我说。(我的意思是想让她自己先稍微了解一下到底现在各个方向学的工具以及以后要做的工具大概是什么,因为喜欢做什么样的事其实自己最清楚的)函数|语句  在写程序的时分,常常会呈现为一个范例供应分歧场景的机关函数,大概年夜多机关函数对照类似,而C#中又不同意缺省参数,因而机关函数的编写无疑是一个反复事情。可是利用Copy和Paste来完成机关函数的编写,偶然候很难到达一致,特别是当做员产生变更的时分。因而对照罕见的交换办法就是为机关函数供应一个一致的成员函数来完成初始化事情。

  比方:

publicclassMyClass
{
 privateint_Age;
 privatestring_Name;

 publicMyClass(stringName)
 {
  InitMember(Name,20);
 }
 publicMyClass(stringName,intAge)
 {
  InitMember(Name,Age);
 }

 ///<summary>
 ///Initclassmembers
 ///</summary>
 ///<paramname="Name"></param>
 ///<paramname="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常量,这也是机关函数初始化语句要比成员函数好的主要一个要素。

  有了下面的申明,关于二者的对照,能够构成以下这个复杂的对照表。

效力代码布局基类挪用静态成员初始化机关函数初始化语句一样简明明晰简单能够成员函数对照明晰对照贫苦不克不及    (注:这里不倡始Copy/Paste办法来反复编写机关函数)感觉很多控件都必须自己去写代码;用了WebMatrix感觉也不是很好,毕竟没有很强的WYSIWYG效果。现在就不知道如何是好了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-18 15:52

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表