集合列表具有多种类型的用户定义对象?

San*_*.91 1 c# interface c#-4.0

我有一个静态列表:

public static List<IMachines>mList =new List<IMachines>();
Run Code Online (Sandbox Code Playgroud)

该列表中包含两种不同类型的对象(机器):

IMachines machine = new AC();
IMachines machine = new Generator();
Run Code Online (Sandbox Code Playgroud)

如果在向列表中添加项目后,我想通过其name属性搜索特定的机器,然后在使用foreach循环进行遍历后,如果在列表中找到该项目...我该如何知道该项目是否为AC类型还是Generator打字?

Ode*_*ded 5

您可以使用is运营商:

检查对象是否与给定类型兼容

例如:

if(item is AC)
{
  // it is AC
}
Run Code Online (Sandbox Code Playgroud)

  • 请注意,如果您随后想要将`item`视为`AC`,那么您可以使用`as`运算符并检查null,此时您可以使用您键入的"AC". (2认同)