c# - 为什么 C# switch 语句不允许使用 typeof/GetType()?

标签 c# .net reflection switch-statement

如本例所示:

switch ( myObj.GetType ( ) )
{
    case typeof(MyObject):
        Console.WriteLine ( "MyObject is here" );
        break;
}

最佳答案

其次是 Peter Hallam 的帖子;这是一个很好的解释。

不过,您可以使用 TypeCode 处理简单类型。

switch (Type.GetTypeCode(myObj.GetType())) {
    case TypeCode.Boolean: ...
    case TypeCode.Char: ...
    case TypeCode.String: ...
    case TypeCode.Object: ...
    default: ...
} 

关于c# - 为什么 C# switch 语句不允许使用 typeof/GetType()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1711005/

相关文章:

c# - C#获取目录下文件名的方法

c# - c#中的不安全图像噪声去除(错误: Bitmap region is already locked)

c# - 什么是 C# 中的方法组?

c# - 如何在 ASP.NET MVC 6 中为不同的环境注册不同的服务?

Java反射: array of classes vs.参数类型数组

c# - 加载程序集并更改源代码,这可能吗?如何做?

c# - 如何使用反射获取类的所有静态属性及其值

c# - 正则表达式 - 在范围内或零

c# - 抛出 HttpResponseException 未被 ExceptionFilterAttribute 捕获

c# - LINQ加入和分组