我尝试了以下内容:
(id == title) | (id.IsNullOrEmpty) ? "class='enabled'" : ""
但是它给出了一条消息“错误22运营商'|'不能应用于'bool'和'method group'类型的操作数
谁能告诉我什么是错的。 id和title都是字符串。
答案 0 :(得分:10)
您似乎正在使用|
而不是||
,我不确定您是否将IsNullOrEmpty
定义为扩展方法,但您正在使用()
调用它。那或者直接打电话给String.IsNullOrEmpty
。
尝试以下
(id == title || String.IsNullOrEmpty(id)) ? "class='enabled'" : ""
答案 1 :(得分:5)
我不是C#开发人员,但请尝试||而不是|。这里解释了运算符之间的差异http://msdn.microsoft.com/en-us/library/aa691310(v=vs.71).aspx。
另外,==
是否正确比较C#中的字符串?在Java中,您需要使用.equals()
。
(更新:显然|与按位运算符无关。)
答案 2 :(得分:0)
如果你想测试“这个字符串是否为null(或为空)或等于另一个字符串”,那么就说:
if (string.IsNullOrEmpty(id) || id.Equals(title))
{
// Code here
}
作为三元手术:
var result = (string.IsNullOrEmpty(id) || id.Equals(title) ? "class='enabled'" : "";
答案 3 :(得分:0)
请尝试这样:
(id == title) || id.IsNullOrEmpty() ? "class='enabled'" : ""
答案 4 :(得分:0)
你正在使用按位OR(|)。你需要逻辑OR(||)。
if ( id == null || id == title )
{
// id is null or id equals title.
}
请注意,等于运算符(==)区分大小写。要进行不区分大小写的比较,请使用静态方法String.Compare。
if ( id == null || String.Compare( id, title, true ) == 0 )
{
// id is null or id equals title (ignoring case).
}