Ath*_*han 3 c# properties private
请注意,以下代码在一个类中是一个类
private string _fee;
private string _receipt;
public string Fee
{
get { return _fee; }
private set { _fee = value; }
}
public string Receipt
{
get { return _receipt; }
private set { _receipt = value;}
}
public MyValue(string fee, string receipt) : this()
{
_fee = int.Parse(receipt).ToString();
_receipt = receipt;
}
Run Code Online (Sandbox Code Playgroud)
你可以看到我的财产什么都不做,所以我应该使用
_fee = int.Parse(fee).ToString();
_receipt = receipt;
Run Code Online (Sandbox Code Playgroud)
要么
Fee = int.Parse(fee).ToString();
Receipt = receipt;
Run Code Online (Sandbox Code Playgroud)
Cha*_*lie 16
使用这些属性,如果您使用的是C#3,则应使用自动实现的属性,如下所示:
public string Fee
{
get; private set;
}
public string Receipt
{
get; private set;
}
public MyValue(string fee, string receipt) : this()
{
this.Fee = int.Parse(fee).ToString();
this.Receipt = receipt;
}
Run Code Online (Sandbox Code Playgroud)
mar*_*c_s 10
我会一直使用属性 - 它给你更多的灵活性:
此外,似乎.NET反射在属性与字段上的行为略有不同,因此如果您混合使用属性和字段,则需要了解这些细微差别 - 如果仅使用属性,则可以使用: - )
在课堂内,您可以使用后备存储字段或属性 - 如果您使用该属性,将使用您的setter可能具有的任何副作用(更新其他字段,记录您的呼叫等) - 如果您访问直接支持商店领域,你可以解决这些问题.这可能是好事还是坏事 - 取决于您的情况.只要知道你在做什么!:-)
渣
| 归档时间: |
|
| 查看次数: |
1459 次 |
| 最近记录: |