可能重复:
使用CLR中的'as'关键字进行转换
foreach (MyClass i in x)
{
if (i is IMy)
{
IMy a = (IMy)i;
a.M1();
}
}
Run Code Online (Sandbox Code Playgroud)
要么
foreach (MyClass i in x)
{
IMy a = i as IMy;
if (a != null)
{
a.M1();
}
}
Run Code Online (Sandbox Code Playgroud)
jas*_*son 10
我更喜欢第三种选择:
foreach(var i in x.OfType<IMy>()) {
i.M1();
}
Run Code Online (Sandbox Code Playgroud)
第二个,因为只有一个演员.或者您可以使用以下OfType方法:
foreach (IMy i in x.OfType<IMy>()) {
i.M1();
}
Run Code Online (Sandbox Code Playgroud)