C# 如何使用;是";关键字与对象?
如何将C# 如何使用;是";关键字与对象?,c#,as-keyword,C#,As Keyword,如何将is关键字用于对象,而不是对象的类 下面是一些代码: private bool IsObjectCompatableWithObjects(object obj, IEnumerable<object> objects) { foreach (var item in objects) { if (obj is item) { return true; } } return f
is
关键字用于对象,而不是对象的类
下面是一些代码:
private bool IsObjectCompatableWithObjects(object obj, IEnumerable<object> objects)
{
foreach (var item in objects)
{
if (obj is item)
{
return true;
}
}
return false;
}
private bool IsObjectCompatitablewithObjects(对象对象对象、IEnumerable对象)
{
foreach(对象中的变量项)
{
如果(obj是项目)
{
返回true;
}
}
返回false;
}
上述代码有以下错误:
找不到类型或命名空间名称“item”(是否缺少)
使用指令或组件引用?)
我猜你是想达到这样的目的
private bool IsObjectCompatibleWithObjects(object obj, IEnumerable<object> objects)
{
return objects.Any(i => i.GetType().IsAssignableFrom(obj.GetType()));
}
输出:
True
True
False
is
用于类型本身,而不是类型实例。因此,如果您需要检查项目是否为object类型,您可能应该编写-
if (item is Object)
而不是
if (obj is item)
但是所有的东西都是对象
,所以它没有什么帮助。如果只需检查列表中的类型If项是否与类型object相同,则应执行以下操作-
if (item.GetType() == obj.GetType())
如果要查看对象是否包含在可枚举对象中,可以使用System.Linq中的enumerable.Contains
:
使用默认相等比较器确定序列是否包含指定元素
您可以这样使用它:
private static bool IsObjectCompatableWithObjects<T>(T obj, IEnumerable<T> objects)
{
return objects.Contains(obj);
}
private static bool IsObjectCompatableWithObjects<T>(T obj, IEnumerable<T> objects)
{
foreach (var item in objects)
{
if (obj.Equals(item))
{
return true;
}
}
return false;
}
private static bool isobjectCompatitablewithobjects(T obj,IEnumerable objects)
{
返回objects.Contains(obj);
}
基本上,您正在做这样的事情:
private static bool IsObjectCompatableWithObjects<T>(T obj, IEnumerable<T> objects)
{
return objects.Contains(obj);
}
private static bool IsObjectCompatableWithObjects<T>(T obj, IEnumerable<T> objects)
{
foreach (var item in objects)
{
if (obj.Equals(item))
{
return true;
}
}
return false;
}
private static bool isobjectCompatitablewithobjects(T obj,IEnumerable objects)
{
foreach(对象中的变量项)
{
如果(目标等于(项目))
{
返回true;
}
}
返回false;
}
您可以查找确切的实现。是否要检查类型,或者查看列表中是否存在该对象?是否希望知道对象是否等于项,或者对象是否与项的类型相同?将if条件更改为if(obj.GetType()==item.GetType())从功能名称判断,op试图检查对象的类型是否符合对象序列。阅读is
关键字