C#.NET有一个类似于我的分配助手类吗?

时间:2011-05-11 19:56:35

标签: c# .net

我已经实现了以下类:

public class ClassAllocator<T>
    where T : new()
{
    public delegate T Allocator();
    T obj;
    Allocator allocator = () => new T();

    public ClassAllocator( T obj )
    {
        this.obj = obj;
    }

    public ClassAllocator( T obj, Allocator allocator )
    {
        this.obj = obj;
        this.allocator = allocator;
    }

    public T Instance
    {
        get
        {
            if( obj == null )
            {
                obj = allocator();
            }

            return obj;
        }
    }
}

我觉得这个简单的东西和有用的应该是在.NET的某个地方。而且,我意识到我所做的课程有点不正确。该类设计用于处理没有默认构造函数的对象,但我的'where'子句在所有情况下都需要它。

让我知道如果.NET中有什么东西我可以使用,所以我可以摆脱这个类,因为我不想继续使用重新发明的轮子。

感谢!!!!

更新

我正在使用.NET 3.5。对不起,我之前没有提到过这个问题,直到一些好的答案开始流入,我才意识到它是相关的:)

2 个答案:

答案 0 :(得分:15)

听起来你正在寻找Lazy<T> Class

  

<强>懒&LT; T&GT;类

     

为延迟初始化提供支持。

     

在第一次访问Lazy&lt; T&gt; .Value属性时发生延迟初始化

答案 1 :(得分:6)