实体框架-如何显示是/否而不是True/False bool?在c#

本文关键字:True False bool 框架 何显示 显示 实体 | 更新日期: 2023-09-27 17:51:11

我得到错误"不能隐式地将类型'字符串'转换为'bool'。我如何返回"是"或"否"而不是真/假?

public bool? BuyerSampleSent
{
    get { bool result;
          Boolean.TryParse(this.repository.BuyerSampleSent.ToString(), out result);
        return result ? "Yes" : "No";
    }
    set { this.repository.BuyerSampleSent = value; }
}

实体框架-如何显示是/否而不是True/False bool?在c#

如果返回类型是bool(在本例中是bool?),则不能返回字符串。你返回一个bool:

return result;

然而,请注意,你问…

如何显示 Yes/No…

这段代码没有显示任何内容。这是一个对象的属性,而不是一个UI组件。在UI中,您可以使用此属性作为标志显示任何您喜欢的内容:

someObject.BuyerSampleSent ? "Yes" : "No"
相反,如果你想在对象本身上显示一个友好的消息(也许它是一个视图模型?),那么你可以为该消息添加一个属性:
public string BuyerSampleSentMessage
{
    get { return this.BuyerSampleSent ? "Yes" : "No"; }
}

正如@Pierre-Luc指出的那样,您的方法返回bool值。您需要将其更改为String

不能返回bool值"Yes"或"No"。在c#中,bool是布尔数据类型的关键字。您不能覆盖关键字的此行为。
在这里阅读更多关于c#布尔数据类型的信息。

在你的情况下,你可以这样做:

public string BuyerSampleSent
{
    get
    {
        string result= "No";
        if (this.repository.BuyerSampleSent.Equals("true",StringComparisson.OrdinalIgnoreCase)) // <-- Performance here
            result = "Yes";
        return result;
    }
    set
    {
        this.repository.BuyerSampleSent = value;
    }
}