制作类属性“一次写入,多次读取”的最佳方法是什么,这样您只能设置一次属性?
我知道我可以传递构造函数中的所有属性并使它们成为ReadOnly,但是在具有大量属性的情况下,我不希望构造函数具有20多个参数。
另外,我意识到我可以“滚动自己的”设置器,但必须为每个属性执行此操作似乎是一堆冗余编码。
在VB 2008 .NET 3.5中有没有一种干净的方法?
答案 0 :(得分:2)
一次写入属性永远不会“干净”。
我建议创建一个构建器/工厂类来避免使用20个参数CTor。 (是的,我知道这有点打字)
此处类似的讨论: Should I use set once variables?
[编辑]此外,即使你坚持我没有看到另一个选择,而不是滚动你自己的制定者,这也是很多打字。
答案 1 :(得分:2)
我知道已经差不多3年了,但这是我认为更好的解决方案:
public class Site
{
private int miID;
public Site(int iNewID, string sName)
{
miID = iNewID;
Name = sName;
}
// The ID property can only be set once in the constructor
public int ID
{
get { return miID; }
}
public string Name { get; set; }
}
答案 2 :(得分:0)
“最干净”的方式根本就是不要这样做并使用自动属性。我也没有看到它的必要性。它们只能写一次真的那么重要吗?如果是这样,我肯定会使用一个构造函数,它将所有属性的值作为参数。