考虑在 View 中的表内显示客户的邮寄地址时使用的以下代码:
<%: Customer.MailingAddress == null ? "" : Customer.MailingAddress.City %>
我发现自己使用了大量这些三元条件语句,并且我想知道是否有一种方法可以引用该条件中要评估的对象,以便可以在表达式中使用它。可能是这样的:
<%: Customer.MailingAddress == null ? "" : {0}.City %>
是否存在这样的东西?我知道我可以创建一个变量来保存值,但最好将所有内容保留在 View 页面中的一条紧小的声明中。
谢谢!
最佳答案
不,虽然您可以执行以下操作,但是没有一种方法可以精确地执行您要问的事情而不创建变量或复制您自己:
(Customer.MailingAddress ?? new MailingAddress()).City ?? string.Empty
假定默认情况下,新MailingAddress的city属性/字段为null。
如果创建新的MailingAddress将city字段/属性初始化为空字符串,则可以删除最后一个null合并。
但这实际上并不短,而且(我认为)更hacky,几乎可以肯定是性能较低。
关于c# - ASP.NET MVC/C#: Can I avoid repeating myself in a one-line C# conditional statement?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4046749/