相关疑难解决方法(0)

C#中typedef的等价物

在C#中是否有typedef等价物,或者某种类似的行为?我做了一些谷歌搜索,但我看到的每个地方似乎都是负面的.目前我的情况类似于以下情况:

class GenericClass<T> 
{
    public event EventHandler<EventData> MyEvent;
    public class EventData : EventArgs { /* snip */ }
    // ... snip
}
Run Code Online (Sandbox Code Playgroud)

现在,当试图为该事件实现处理程序时,并不需要火箭科学家弄清楚这会很快导致大量输入(为可怕的双关语道歉).它最终会像这样:

GenericClass<int> gcInt = new GenericClass<int>;
gcInt.MyEvent += new EventHandler<GenericClass<int>.EventData>(gcInt_MyEvent);
// ...

private void gcInt_MyEvent(object sender, GenericClass<int>.EventData e)
{
    throw new NotImplementedException();
}
Run Code Online (Sandbox Code Playgroud)

除了在我的情况下,我已经使用了复杂类型,而不仅仅是一个int.如果有可能简化这一点,那就太好了......

编辑:即.也许键入定义EventHandler而不是需要重新定义它以获得类似的行为.

c# typedef

308
推荐指数
10
解决办法
19万
查看次数

C#交叉引用泛型类

我希望两个泛型类能够互相引用.我似乎无法编译任何东西.试过这个:

class Program
{
    static void Main(string[] args)
    {
    }

    public class ClassA<BT> where BT: ClassB<ClassA<BT>>
    {
        BT btvar;
    }

    public class ClassB<AT> where AT: ClassA<ClassB<AT>>
    {
        AT atvar;
    }
}
Run Code Online (Sandbox Code Playgroud)

这有一个实际的实现,但我想避免对我自己的代码进行复杂的解释.我可以创建遵循规则的封闭类,我似乎无法描述那些封闭实例的泛型类或接口.

c# generics

1
推荐指数
1
解决办法
698
查看次数

标签 统计

c# ×2

generics ×1

typedef ×1