【发布时间】:2017-01-20 08:53:57
【问题描述】:
我觉得,这是一个有点傻的问题,但是......
我知道,这是规则,但不知道为什么。
对于名为 T1 和 T2 的 2 种类型,我可以:
if (typeof(T1) == typeof(T2))
...
,但不能直截了当:
if (T1 == T2)
为什么?
【问题讨论】:
-
@m.rogalski:据我所知,类型名称不是有效的表达式。因此,C# 的语法比运算符更重要。 (此外,还有哪些运算符?没有
typeof,类型名称就不是System.Type。) -
@m.rogalski:这个问题是关于比较类型的。他们在
typeof表达式中使用T1和T2。我相当肯定他们试图暗示T1和T2是类型名称,特别是考虑到以这种方式比较System.Types 已经有效。 -
我想该功能没有为climb out of the
-100hole 积累足够的积分。可能还有一些语法和解析问题需要考虑。 -
除了 can 方面,你为什么想要这个?这看起来像一个 XY 问题。
-
IMO 这样做是非常不寻常的(并且可能与反模式有关),以至于想要通过强制使用
typeof()来引起人们的注意
标签: c# types compare comparison typeof