如何在VB.NET中创建一个属性“Write Once Read Many”?

创建一个类属性“一次写入,多次读取”的最佳方式是什么,以便您只能设置属性一次?

我知道我可以传递构造函数中的所有属性并使它们成为ReadOnly,但在具有很多属性的情况下,我不想要一个具有20多个参数的构造函数。

此外,我意识到我可以“推出我自己的”制定者,但必须为每个属性做这件事似乎是一堆冗余编码。

有没有一种干净的方式在VB 2008 .NET 3.5中做到这一点?


一次写入属性永远不会“干净”。

我建议创建一个builder / factory类来避免20参数CTor。 (是的,我知道这是一些打字)

类似的讨论在这里:我应该使用设置一次变量?

此外,即使你坚持我没有看到另一个选择,而不是滚动你自己的setters,这也是很多输入。


我知道已经差不多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; }
}

“最干净”的方式是根本不做,并使用自动属性。 我也没有看到它的需要。 他们只能写一次真的很重要吗? 如果是这样,我肯定会去一个构造函数,它将所有属性的值作为参数。

链接地址: http://www.djcxy.com/p/43945.html

上一篇: How can I make a property "Write Once Read Many" in VB.NET?

下一篇: how to record audio and video in gstreamer