检查对象属性是否有赋值

本文关键字:赋值 是否 属性 对象 检查 | 更新日期: 2023-09-27 18:03:28

我有一个类,允许一些属性留空(null)问题是我不知道如何正确检查,并不断得到一个错误。

这是类:

public class ZoomListItem
{
    public string image { get; set; }
    public string text1 { get; set; }
    public string text2 { get; set; }
    public ZoomAction action { get; set; }
}

,下面是我如何使用实例:

@foreach (ZoomListItem item in Model.templates)
{
    var actionUrl = (item.action != null) ? "" : "#";  //error here

类的实例化没有指定动作值,只有文本和图像被赋值。在条件语句的那一行,我得到了以下错误:

类型为'System '的异常。在System.Web.Mvc.dll中发生了ArgumentException,但没有在用户代码中处理

附加信息:值不能为空或空

我没有正确检查item.action != null吗?

检查对象属性是否有赋值

您的代码应该检查item.action是否为空,但不检查item是否为空。在item为空的情况下,将发生空引用异常。您可能需要:

var actionURL = (item != null && item.action != null) ? "" : "#";

这将首先检查item不为空,然后检查item.action不为空。

@Luaan的评论看起来包含了答案