一不留神,自己就会变成老土了
来源:互联网 发布:网络传销为什么没人管 编辑:程序博客网 时间:2024/04/30 18:22
这两天在程序中实现一个动态创建HTML的功能类,发现公司一个小伙子写的如下的一个类:
public class UIHtml
{
public UIHtml() { }
public UIHtml(string ObjectName,TBHtmlViewType ViewType, string MD5)
{
this.ObjectName = ObjectName;
this.ViewType = ViewType;
this.MD5 =MD5;
}
public string ObjectName {get; set; }
public TBHtmlViewType ViewType {get; set; }
public string MD5 { get; set;}
public override string ToString()
{
returnObjectName + "_" + ViewType.ToString();
}
}
感觉比较奇怪,这样的类能够工作吗?这个问题问得有点多余,因为这个类工作的很好,已经工作了很长时间了。我的印象中C#类的属性必须有一个对应的private 字段才可以,这样的类定义中,所有的属性都没有字段,还可以工作,我肯定是落伍了,于是查了查MSDN2010,发现了如下的内容:
在C# 3.0 和更高版本中,当属性的访问器中不需要其他逻辑时,自动实现的属性可使属性声明更加简洁。客户端代码还可通过这些属性创建对象。如下面的示例所示声明属性时,编译器将创建一个私有的匿名支持字段,该字段只能通过属性的get 和 set 访问器进行访问。
示例
下面的示例演示了一个具有某些自动实现的属性的简单类:
C#
复制
// This class is mutable. Its data can bemodified from
// outside the class.
class Customer
{
// Auto-Impl Properties for trivial get andset
public double TotalPurchases { get; set; }
public string Name { get; set; }
public int CustomerID { get; set; }
// Constructor
public Customer(double purchases, string name,int ID)
{
TotalPurchases = purchases;
Name = name;
CustomerID = ID;
}
// Methods
public string GetContactInfo() {return "ContactInfo";}
public string GetTransactionHistory() {return "History";}
// .. Additional methods, events, etc.
}
class Program
{
static void Main()
{
// Intialize a newobject.
Customer cust1 = new Customer ( 4987.63, "Northwind",90108 );
//Modify a property
cust1.TotalPurchases += 499.99;
}
}
前面示例中所示的类是可变的。客户端代码可在对象创建后更改对象中的值。在包含大量行为(方法)以及数据的复杂类中,通常需要有公共属性。但是,对于仅封装一组值(数据)且只有极少行为或没有行为的较小类或结构,建议将 set 访问器声明为private 以使对象不可变。有关更多信息,请参见如何:使用自动实现的属性实现轻量类(C# 编程指南)。
可以在自动实现的属性上使用特性,但由于特性不可从源代码访问,显然不能用在支持字段上。如果您必须在属性的后备字段上使用特性,则应该只创建常规属性。
我很早接触.net,从1.0就开始了,所以很多东西在我的印象中根深蒂固,这种语言的新特性,最近没有关注,结果落伍了,老土了。真的要当心,新的技术,新的环境,变化太快了。一不留神,就老土了。
- 一不留神,自己就会变成老土了
- 会打字就能建立自己的网站了!
- 每天收获一点点,慢慢自己就会变得不简单了。
- 语言只是工具,最重要的是系统架构,没有了架构,就会变成代码机器人。
- 你就变成了我
- 【写给自己】不要以为跟着打了代码你就会了
- 当心情低落了,看看就会觉得自己还是幸运的...
- Xcode插件,一不留神点了skip bundle的解决办法
- 别把自己变成了“二等公民”
- 别把自己变成了“二等公民”
- 别把自己变成了“二等公民”
- 别把自己变成了“二等公民”
- 别把自己变成了“二等公民”
- 别把自己变成了“二等公民”
- 如果你会了sass,你就会了ECMAScript6
- 项目已经进入最后的整合测试阶段,预计3月的客户就会自己部署,测试了!
- 今天你为自己贴上什么样的标签,或许就决定了明天你是否会被委以重任
- 暴雪在洛杉矶建了自己的电竞馆,守望先锋锦标赛下个月就会在这里举行
- 复制单个文件(修改原来的文件名或是不修改)
- MySQL命令修改密码与授权
- 网址资料
- 不错的显卡资料,备忘
- 云计算中心管理软件-RightScale
- 一不留神,自己就会变成老土了
- GTK简介 - 层次、信号、事件
- Android 获取网络连接方式、判断手机卡所属运营商
- string和byte[]的转换
- SQL查询分组后结果中某字段按照条件相加的实现
- 剪切单个文件(修改原来的文件名或是不修改)
- 如何创建组播应用程序(一)
- 设计模式之观察者模式
- regxpcom