我将来自数据库的值存储在LoadData类
中的实例变量中public class LoadData
{
public string _projectName;
public void GetProjectName()
{
//Retrieving data from db
_projectName= dt.Rows[0]["projectname"].ToString();
}
}
现在,我希望每次稍后调用不同的ViewModel时都将此字符串值用作readonly。
最好的方法是什么?
答案 0 :(得分:0)
您可以将值标记为静态,允许任何内容访问它。您还可以应用readonly
关键字,以防止在从数据库中为其分配初始值后覆盖该值。
public class LoadData
{
public static readonly string _projectName;
public void GetProjectName()
{
//Retrieving data from db
_projectName= dt.Rows[0]["projectname"].ToString();
}
}
我会把它包装在一个属性中,而不是像你那样暴露一个字段。
public class LoadData
{
private static readonly string _projectName;
public string ProjectName
{
get { return LoadData._projectName; }
}
public void GetProjectName()
{
//Retrieving data from db
_projectName= dt.Rows[0]["projectname"].ToString();
}
}
这允许您将静态成员保密,以便不会看到它。现在,每次创建新的LoadData
实例时,您都可以访问ProjectName
并获得第一次获取的值。
我个人使用静态字段来缓存数据;我尝试不依赖静态字段作为类的公共成员。在这种情况下,由于它充当缓存,因此最好将其公开为返回只读静态缓存的实例属性。将其设置为静态可确保在LoadData
类的每个实例之间共享值。