c#(任何版本)是否提供了一种改进的别名属性名称方法?在AccountBase中,我使用字符串Username来标识帐户,但在NonstandardAccount中,我希望客户端(API的使用者)使用CustomerNumber来防止混淆。
这是我的代码:
public abstract class AccountBase
{
public string Username { get => Username; set => Username = value; }
}
public class StandardAccount
{
// The username is the ID
}
public class NonstandardAccount : AccountBase
{
// The Username or CustomerNumber is the ID
public string CustomerNumber { get => Username; set => Username = value; }
// OR ideally, but I don't think this works
public string CustomerNumber => Username;
}
我可以放弃添加CustomerNumber属性,只记录它与用户名相同,但它不清楚。我可以按原样保留我的实现,但为了清晰起见,额外的存储可能不是一个很好的权衡。
答案 0 :(得分:3)
感谢Patrick Artner,我不仅找到了答案,而且找到了理想的答案。它一直都在我的源代码中,但我并不相信我的直觉。
public class NonstandardAccount : AccountBase
{
// Does work and works perfectly! Username is still accessible
public string CustomerNumber => Username;
}
一个新的难以吸取的教训:仅仅因为你的直觉在很多场合都是错误的,并不意味着你应该把它视为病态的骗子。