如何为布尔显示是/否而不是真/假?在c#中

时间:2014-03-20 17:09:16

标签: c# entity-framework visual-studio-2012

我收到错误"无法隐式转换类型'字符串'到了布尔'。我如何返回'是'或者'否'而不是真/假?

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

3 个答案:

答案 0 :(得分:6)

如果返回类型为bool(或在此情况下为bool?),则无法返回字符串。您返回bool

return result;

但请注意,你问......

  

如何显示是/否......

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

someObject.BuyerSampleSent ? "Yes" : "No"

相反,如果您想在对象本身上显示友好的消息(可能它是视图模型?),那么您可以为该消息添加属性:

public string BuyerSampleSentMessage
{
    get { return this.BuyerSampleSent ? "Yes" : "No"; }
}

答案 1 :(得分:0)

@ Pierre-Luc指出,你的方法返回了一个bool。您需要将其更改为String。

答案 2 :(得分:0)

你无法返回bool值"是"或"否"。在C#中, bool 是布尔数据类型的关键字。您无法覆盖关键字的此行为。
阅读有关C#布尔数据类型here的更多信息。

在您的情况下,您可以执行以下操作:

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;
    }
}