我正在尝试将一个类型传递给一个方法,在该方法中我可以检查它是否"is"某种类型。但是我下面的代码无法编译,我想知道出了什么问题。编译错误是:找不到类型或命名空间名称“dataType”。
public static List<object> findType(Type dataType)
{
List<object> items = new List<object>();
foreach (KeyValuePair<int, object> entry in DataSource.ItemPairs)
{
if (entry.Value != null && entry.Value is dataType)
{
items.Add(entry.Value);
}
}
return items;
}
最佳答案
is
运算符需要一个类型名称,而不是 Type
实例。因此应该在编译时知道该类型。
但是您可以使用 IsAssignableFrom
方法来检查类型是否兼容:
if (entry.Value != null && dataType.IsAssignableFrom(entry.Value.GetType())
关于c# - 通过方法传入类型时如何使用 'is'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27795406/