0

我正在考虑两种替代方案作为保护子句,仅当我有正确类型的对象时才允许运行某些代码:

var targetObject = eventArgs.Value as MagicType;

if (targetObject != null)
{
    DoStuffWith(targetObject);
}

要不然:

if (targetObject is MagicType)
{
     // DoStuffWith(targetObject);  // not quite. Actually:
     DoStuffWith((MagicType)targetObject);
}

查看这两种替代方案,它们似乎非常等效,但我知道操作(asvs is)在概念上是不同的。

所以问题是:应该首选哪一个?这个选择取决于场景吗?为什么?

4

0 回答 0