0
public class Classname
{       
    private static nameOFform Somevariable;
    public static nameOFform GlobalForm 
    {
        get 
        {
            if (Somevariable == null || Somevariable.IsDisposed) 
            {
                Somevariable = new nameOFform();
            }
            return Somevariable;
        }
        set 
        {
            value = Somevariable;
        }
    }
}

是否可以将此方法放在一个类中,然后在实例函数中调用它,比如说 => classname.makemyformglobal(formname); 每次创建表单以使其全球化时都会使用它。这可能吗?如果是这样,那么我如何根据创建的表单名称制作一种动态方法。

4

1 回答 1

0

如果我正确理解了您的问题,那么您正在研究通常在 c# 中使用泛型实现的东西。

public static class GlobalFormAccessor
{
    private static Dictionary<Type, object> _cache = new Dictionary<Type, object>();
    public static TForm GetForm<TForm>()
        where TForm : class, new()
    {
        if (_cache.ContainsKey(typeof(TForm)))
        {
            _cache[typeof(TForm)] = new TForm();
        }
        return (TForm)_cache[typeof(TForm)];
    }

    public static void SetForm<TForm>(TForm form)
    {
        _cache[typeof (TForm)] = form;
    }
}

然后你可以像这样调用这个方法:

GlobalFormAccessor.GetForm<nameOFform>();

nameOFformForm 类的类型在哪里。

于 2013-10-25T07:57:48.553 回答