哪个代码更好:使用"as"或"is"?

Boh*_*ohn 1 c# syntax casting operators

可能重复:
使用CLR中的'as'关键字进行转换
C#:"is"vs"as"

这段代码:

    if (sheet.Models.Data is GroupDataModel)
    {
        GroupDataModel gdm = (GroupDataModel)sheet.Models.Data;
Run Code Online (Sandbox Code Playgroud)

而这段代码:

    GroupDataModel gdm = sheet.Models.Data as GroupDataModel;
    if (gdm != null)
    {
Run Code Online (Sandbox Code Playgroud)

你推荐上面两种风格中的任何一种而不是另一种吗?

Row*_*haw 5

后者由FxCop提倡,因为演员只需要执行一次(as)