我从列表中的数据库中检索了一个静态表。 如果有人使用ID调用该类的构造函数,构造函数将在列表中找到该对象并复制所有值。
public class MyClass
{
public int Id { get; set; }
public string Text { get; set; }
public MyClass(int instanzId)
{
MyClass myClass = CachedList().Find(T => T.Id == instanzId);
Id = myClass.Id;
Text = myClass.Text;
}
}
这将始终创建该对象的新实例。 是否可以直接从列表中返回对象? 像这样:
public class MyClass
{
public int Id { get; set; }
public string Text { get; set; }
public MyClass(int instanzId)
{
this = CachedList().Find(T => T.Id == instanzId);
}
}
我知道静态方法很容易,但是如何在构造函数中完成呢?
答案 0 :(得分:5)
嗯不,不是通过构造函数。你可以通过一种方法来做到这一点。例如工厂:
public MyClass FindOrCreate(int instanceId)
{
MyClass obj = CachedList().Find(T => T.Id == instanzId);
//create obj when it does not exist
return obj;
}
答案 1 :(得分:2)
将缓存包装到另一个轻量级类中:
Tables (They essentially have the same fields with a few different ones) :
Table 1 : {id, user_id, score}
Table 2 : {id, user_id, score}
Table 3 : {id, user_id, score}
users : {id, name, overall_score}