这些代码段之间有什么区别?

时间:2014-09-17 08:19:46

标签: c# multithreading wcf wcf-endpoint

if (this.UserManagmentType != UserMgmtType.NONE)
{
   return (User)GetUserBaseById(userId);
}

if (this.UserManagmentType != UserMgmtType.NONE)
{
   return GetUserBaseById(userId) as User;
}

我理解演员之间的区别。如果转换失败,第一个if语句应抛出无效的强制转换异常,而第二个if语句将返回null。

对于多线程环境中负载较重的相同数据,第一个if语句偶尔会返回null,而第二个if语句将始终返回有效数据。

另一个注意事项是包含方法是WCF端点。

为什么第一个if语句会返回null?

感谢您的任何见解。

0 个答案:

没有答案