我应该更喜欢"是"还是"作为"运算符?

joh*_*nny 5 c#

可能重复:
使用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)

Ste*_*cya 16

当你施放1次时更优选第二次


jas*_*son 10

我更喜欢第三种选择:

foreach(var i in x.OfType<IMy>()) {
    i.M1();
}
Run Code Online (Sandbox Code Playgroud)


Guf*_*ffa 8

第二个,因为只有一个演员.或者您可以使用以下OfType方法:

foreach (IMy i in x.OfType<IMy>()) {
  i.M1();
}
Run Code Online (Sandbox Code Playgroud)