相关疑难解决方法(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万
查看次数

何时何地使用GetType()或typeof()?

为什么会这样

if (mycontrol.GetType() == typeof(TextBox))
{} 
Run Code Online (Sandbox Code Playgroud)

这不是吗?

Type tp = typeof(mycontrol);
Run Code Online (Sandbox Code Playgroud)

但这很有效

Type tp = mycontrol.GetType();
Run Code Online (Sandbox Code Playgroud)

我自己使用is运算符来检查类型,但是当我使用typeof()和时,我的理解失败了GetType()

何时何地使用GetType()typeof()

.net c# types typeof gettype

60
推荐指数
4
解决办法
12万
查看次数

如何在C#中存储类列表?

在Java中,我可以有一个类列表,如:

List<Class>
Run Code Online (Sandbox Code Playgroud)

但是我如何在C#中做到这一点?

c# generics reflection class list

4
推荐指数
1
解决办法
3865
查看次数

typeof(T) 与 new T().GetType()

两个表达式保证相同吗?

在通用方法中Foo<T> where T : new()......这个表达式总是 true吗?

typeof(T) == new T().GetType()

我不明白它怎么可能是假的,但也许我错过了一个边缘情况。

我认为以下任何相关问题都没有解决这个问题:

c#

0
推荐指数
1
解决办法
96
查看次数

标签 统计

c# ×4

.net ×1

class ×1

generics ×1

gettype ×1

list ×1

reflection ×1

typeof ×1

types ×1