我目前拥有以下类,其中包括getter和setter
public class CustAccount
{
public string Account { get; set; } private string account;
public string AccountType { get; set; } private string accountType;
public CustSTIOrder(Account ord)
{
account = ord.Account;
accountType = ord.AccountType;
}
}
现在我意识到public string Account { get; set; }
我不需要声明private string account
。无论如何现在我的私有变量account
包含值,但是当我使用Account
获取值时,我得到一个null。有关为什么我得到null的任何建议?
答案 0 :(得分:6)
由于您使用的是自动属性,因此您应该使用Account
来对该属性进行所有引用。
如果您要使用支持字段,则需要在account
和get
中设置支持字段set
。
示例:
public string Account
{
get { return account; }
set { account = value; }
}
private string account;
自动属性的使用示例:
public CustSTIOrder(Account ord)
{
Account = ord.Account;
// the rest
}
答案 1 :(得分:4)
私有字段需要在属性中使用,否则您将获得具有不同后备存储的auto-implemented property。
public class CustAccount
{
private string account;
public string Account { get {return account;} set{account = value;} }
private string accountType;
public string AccountType { get{return accountType;} set{accountType = value;} }
public CustSTIOrder(Account ord)
{
account = ord.Account;
accountType = ord.AccountType;
}
}
答案 2 :(得分:3)
您必须将字段Account
与字段account
:
private string account;
public string Account
{
get {return this.account;}
set {this.account = value;}
}
答案 3 :(得分:2)
请勿使用account
,直接使用该属性:
public class CustAccount
{
public string Account { get; set; }
public string AccountType { get; set; }
public CustSTIOrder(Account ord)
{
Account = ord.Account;
AccountType = ord.AccountType;
}
}
这些自动属性在内部由一个字段支持,因此您不必编写那些简单的代码。