【问题标题】:Can I assign a null value to an anonymous type property? [duplicate]我可以为匿名类型属性分配空值吗? [复制]
【发布时间】:2014-07-20 15:19:43
【问题描述】:

我在 WebAPI 中有以下内容被转换为 JSON 字符串并发送到客户端:

return Ok(new
    {
        Answer = "xxx",
        Text = question.Text,
        Answers = question.Answers.Select((a, i) => new
        {
            AnswerId = a.AnswerId,
            AnswerUId = i + 1,
            Text = a.Text
        })
    });

现在我意识到我想将值 null 分配给 Answer。然而,这给了我一条消息,说

cannot assign <null> to anonymous type property. 

有没有一种方法可以做到这一点,而不必定义一个类,这样我就可以分配空值?

【问题讨论】:

  • 我不认为这是重复的。这是一个有用的、具体的问题,答案很简单。链接的问题涵盖了它,但与处理数组有关。

标签: c#


【解决方案1】:

当然 - 您只需要将 null 值转换为正确的类型,以便编译器知道您想要该属性的类型。例如:

return Ok(new {
    Answer = (string) null,
    Text = ...,
    ...
});

【讨论】:

  • (string) null 和 (int) null 真的不同吗?
  • @Anshul:好吧(int) null 无效...但是如果您选择了一个有效的类型,那么是的,它们是不同的,因为它们有不同编译时类型,这意味着结果中的匿名类型将具有不同的属性类型。
  • "嗯 (int) null 无效" -- 不知道为什么我没有意识到这一点。当然。感谢您的回答。有道理。
  • 太棒了!请记住,对于某些原始类型和布尔类型,不允许使用 null 值。
猜你喜欢
  • 1970-01-01
  • 2011-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-16
相关资源
最近更新 更多