gpt4 book ai didi

c# - 如何在 C# 中测试变量是否属于变量类型?

转载 作者:行者123 更新时间:2023-12-02 05:28:16 25 4
gpt4 key购买 nike

我想在 C# 中执行如下操作:

public bool ValidType(Type type)
{
return _someVar is type;
}

C# 似乎不支持这种语法; “is”右侧的项目似乎必须是绝对类型名称,而不是对类型的引用。

我发现下面的代码似乎可以工作:

return _someVar.GetType().IsInstanceOfType(type) ||
_someVar.GetType().IsSubclassOf(type) ||
_SomeVar.GetType().IsAssignableFrom(type);

我不明白 IsAssignableFrom 的作用,除了在某些类型比较中似乎需要它,因为 IsInstanceOfTypeIsSubclassOf 似乎不需要正确匹配所有情况。

这真的是测试一个变量的最佳方法是一个类型,由另一个变量引用,还是我错过了更简单的语法?

最佳答案

IsAssignableFrom 就足够了,不需要其他两个测试,但你把它称为错误的方式。正确的方法是:

public bool ValidType(Type type)
{
return type.IsAssignableFrom(_someVar.GetType());
}

I don't understand what IsAssignableFrom does

实际上,它的作用正如其名:它测试给定类型的变量是否可以从另一种类型的值赋值。

关于c# - 如何在 C# 中测试变量是否属于变量类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12772138/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com