这为温拿您好,
大鲁蛇我很弱,若有讲错,还请版友指正,
首先我想您需要官网的文件,
http://msdn.microsoft.com/zh-tw/library/67ef8sbd.aspx
以下例子取自官网,
public class CalendarEntry
{
//所以我们先定义这个东西叫做Field(字段),也就是你说的member variable
private DateTime date;
//这个东西叫做Property(属性)
public DateTime Date
{
get
{
return date;
}
set
{
date = value;
}
}
}
接下来看一下,属性概观:
1. 属性让类别能够在隐藏实作或验证程式码的同时,以公开的方式取得并设定值。
2. get 属性存取子是用来传回属性值,而 set 存取子是用来指定新值。
这些存取子可能具有不同的存取层级。
3. value 关键字的用途是定义由 set 存取子所指定的值。
4. 没有实作 set 存取子的属性就是唯读的。
5. 针对不需要自订存取子程式码的简单属性,请考虑使用自动实作的属性。
关于自动实作的属性:
在 C# 3.0 与以后的版本,自动实作属性让属性宣告更为简明,而且在属性的存取子
(Accessor) 中也不需要额外的逻辑。 这些存取子也可以让用户端程式码建立物件。
当您宣告如下列范例所示的属性时,编译器便会建立私用 (Private) 的匿名支援字段
,让您只能透过属性的 get 和 set 存取子来进行存取。
class Customer
{
// Auto-Impl Properties for trivial get and set
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";}
}
补充:
对于只是封装一组值 (资料) 与只有少数或没有任何行为的小型类别或结构,
则建议将 set 存取子宣告为 private,以便将物件设为不可变的。
// Read-only properties.
public string Name { get; private set; }
public string Address { get; private set; }
之后我看了几个官网上的范例,似乎没有你说的这种写法,
public static String KeyName() {
get {
return System.Web.Configuration.
WebConfigurationManager.AppSettings["KeyName"];
}
}
我觉得应该是这样才对(拿掉那个括号),让他为静态属性,而非静态方法。
public static String KeyName {
get {
return System.Web.Configuration.
WebConfigurationManager.AppSettings["KeyName"];
}
}