我收到错误"无法隐式转换类型'字符串'到了布尔'。我如何返回'是'或者'否'而不是真/假?
public bool? BuyerSampleSent
{
get { bool result;
Boolean.TryParse(this.repository.BuyerSampleSent.ToString(), out result);
return result ? "Yes" : "No";
}
set { this.repository.BuyerSampleSent = value; }
}
答案 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;
}
}