IndicationBase indication = new IndicationBase(Chatham.Web.UI.Extranet.SessionManager.PhysicalUser);
// check for permissions
LightDataObjectList<TransactionPermission> perms = indication.Model.Trx.TransactionPermissionCollection;
因此有时候indication
会有Model.Trx.TransationPermissionCollection
,很多时候都不会。如何在尝试访问它之前检查它是否存在,这样我就不会收到错误。
答案 0 :(得分:4)
大概你得到NullReferenceException
?不幸的是,这没有很好的捷径。你必须做类似的事情:
if (indication.Model != null &&
indication.Model.Trx != null)
{
var perms = indication.Model.Trx.TransactionPermissionCollection;
// Use perms (which may itself be null)
}
请注意,属性本身始终存在 - 静态类型和编译器确保这一点 - 这只是检查属性链中是否有非空引用的情况。
当然,如果任何属性是非可空类型,则无需检查那些是否为null:)