2012-01-10 85 views

回答

2

这就是所谓的auto-implemented property

在C#3.0和更高,自动实现的属性使 属性声明更简洁当不需要附加的逻辑在属性访问 。它们还使客户端代码能够创建 对象。当您声明属性如以下 示例所示时,编译器会创建一个专用的匿名支持字段,该字段只能通过该属性的get和set访问器来访问。

编译器将改变这个代码转换成类似:

private System.Nullable<DateTime> xxx; 
public System.Nullable<DateTime> LoginDateTime 
{ 
    get 
    { 
     return xxx; 
    } 
    set 
    { 
     xxx = value; 
    } 
} 

的“生成”代码然后被称为property

属性是,提供了一个灵活的机制一个构件读取, 写入或计算专用字段的值。属性可以使用 就好像它们是公共数据成员一样,但它们实际上是特殊的 称为访问器的方法。这使数据能够被轻松访问,并且仍然有助于提高方法的安全性和灵活性。


关于System.Nullable <>

值类型不能具有空值(相对于引用类型)。使用System.Nullable<>允许表示其基础值类型的正确值范围,再加上一个额外的空值。

另一个符号来System.Nullable<DateTime>DateTime?

Nullable Types (C# Programming Guide)

0

是哪一部分的它,你感到困惑?

它恰巧是一个C# property类型Nullable(T),这是一种结构,允许您使其他结构可以为空。因为您可以将属性设置为null,请注意,不能将普通DateTime变量设置为空。

该属性写有一些称为Auto-Implemented properties的语法糖。

拥有名称LoginDateTime它可能存储了登录人员的日期和时间。