类型名称在哪里定义?

gre*_*man 3 c# types

当您获得变量的类型时,您可以检查其名称:

if (my_type.Name=="Int32")
Run Code Online (Sandbox Code Playgroud)

但是写起来会更优雅

if (my_type.Name==TypeNames.Int32)
Run Code Online (Sandbox Code Playgroud)

避免错别字.我可以自己定义这样的类,但也许已经定义了某个地方?

如果是的话,在哪里?


注意:请避免想知道"为什么你想首先得到变量的类型","最好使用'是'"等.非常感谢你!


编辑:同时,我跳到结论,它足以忽略对象的类型(my_type变量)并检查对象.换句话说,my_type不是必需的.我忘记了空案例:-(更少的代码,更多的睡眠,这就是我需要的东西;-)

Jar*_*Par 16

请尝试以下方法

typeof(Int32).Name
Run Code Online (Sandbox Code Playgroud)

如果你想比较类型,虽然通过名称这样做不是最好的解决方案,因为在许多情况下它会是错误的.直接比较类型更为正确.

if ( m_type == typeof(Int32) ) { 
  ...
}
Run Code Online (Sandbox Code Playgroud)