IndicationBase indication = new IndicationBase(Chatham.Web.UI.Extranet.SessionManager.PhysicalUser);
// check for permissions
LightDataObjectList<TransactionPermission> perms = indication.Model.Trx.TransactionPermissionCollection;
因此,有时
indication
会有一个Model.Trx.TransationPermissionCollection
,很多时候却没有。在尝试访问它之前如何检查它是否可以正常工作,这样我就不会收到错误消息。 最佳答案
想必您会收到NullReferenceException
吗?不幸的是,这没有很好的捷径。您必须执行以下操作:
if (indication.Model != null &&
indication.Model.Trx != null)
{
var perms = indication.Model.Trx.TransactionPermissionCollection;
// Use perms (which may itself be null)
}
请注意,属性本身始终存在于此-静态类型化和编译器确保了这一点-这只是检查属性链中是否到处都有非null引用的一种情况。
当然,如果任何属性都是不可为null的类型,则无需检查它们是否为null :)