相关疑难解决方法(0)

类型检查:typeof,GetType还是?

我见过很多人使用以下代码:

Type t = typeof(obj1);
if (t == typeof(int))
    // Some code here
Run Code Online (Sandbox Code Playgroud)

但我知道你也可以这样做:

if (obj1.GetType() == typeof(int))
    // Some code here
Run Code Online (Sandbox Code Playgroud)

或这个:

if (obj1 is int)
    // Some code here
Run Code Online (Sandbox Code Playgroud)

就个人而言,我觉得最后一个是最干净的,但有什么我想念的吗?哪一个最好用,还是个人喜好?

c#

1435
推荐指数
8
解决办法
93万
查看次数

如何检查一个类是否继承了另一个类而没有实例化它?

假设我有一个看起来像这样的类:

class Derived : // some inheritance stuff here
{
}
Run Code Online (Sandbox Code Playgroud)

我想在我的代码中检查这样的内容:

Derived is SomeType;
Run Code Online (Sandbox Code Playgroud)

但看起来像is运算符需要Derived是Dervied类型的变量,而不是Derived本身.我不想创建Derived类型的对象.
如何在SomeType不实例化的情况下确保Derived继承?

PS如果它有帮助,我想要一些where关键字与泛型有关的东西.
编辑:
类似于这个答案,但它正在检查一个对象.我想查看课程本身.

c# inheritance types

130
推荐指数
2
解决办法
9万
查看次数

标签 统计

c# ×2

inheritance ×1

types ×1