如果我有一个只有 getter 的公共(public)属性,使用私有(private)变量赋值然后返回该值是否正确,或者我应该只使用 return
而不是设置值用户ID
?将来我们计划添加更多使用 userID 字段的功能,并且将向此类添加使用 userID 字段的方法。一种或另一种方式有什么好处吗?有没有其他方法可以做到这一点?
private string userID;
public string ID
{
get
{
if (System.Web.HttpContext.Current.Request.Headers.AllKeys.Contains("UID"))
{
userID = System.Web.HttpContext.Current.Request.Headers["UID"].ToString();
}
else
{
userID = "0000";
}
return userID;
}
}
最佳答案
getter 现在的编码方式不需要赋值,因为后续调用会忽略之前方法设置的值。但是,您可以像这样缓存结果:
private string userID;
public string ID {
get {
if (userID == null) {
if (System.Web.HttpContext.Current.Request.Headers.AllKeys.Contains("UID")) {
userID = System.Web.HttpContext.Current.Request.Headers["UID"].ToString();
} else {
userID = "0000";
}
}
return userID;
}
}
此实现通过将初始检索结果缓存在私有(private)实例变量中,避免重复读取 “UID”
。
关于c# - 在公共(public)属性 getter 中使用私有(private)变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16463879/