猿问

枚举类型+范形???

问题描述:

  我想要定义一个范形类型 MyClass<T>,需要限定T必须是一个枚举类型,不知是否可行。

  写了下面的代码,但是VS不让我编译。

  class MyClass<T> where T : Enum

  {

    .....

  }


慕哥6287543
浏览 659回答 2
2回答

莫回无

好像不能编译时检查,可采用运行时检查1 class MyClass<T> where T : struct2 {3 &nbsp;&nbsp; &nbsp;public MyClass()4 &nbsp;&nbsp; &nbsp;{5 &nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if (typeof(Enum) != typeof(T).BaseType)6 &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;throw new XXXException("...");7 &nbsp;&nbsp; &nbsp;}8 }9 &nbsp;

一只甜甜圈

根本做不到的吧,用typeof(T).IsEnum判断吧
随时随地看视频慕课网APP
我要回答