public string Source
{
get
{
/*
if ( Source == null ){
return string . Empty;
} else {
return Source;
}
*/
return Source ?? string.Empty;
}
set
{
/*
if ( Source == null ) {
Source = string . Empty;
} else {
if ( Source == value ) {
Source = Source;
} else {
Source = value;
}
}
*/
Source == value ? Source : value ?? string.Empty;
RaisePropertyChanged ( "Source" );
}
}
我可以用吗?:
??
运营商EXACTLY如如果/否则?
My Question :
如何用 ?: ?? 编写以下内容
[ 1 ]
if ( Source == null ){
// Return Nothing
} else {
return Source;
}
[ 2 ]
if ( Source == value ){
// Do Nothing
} else {
Source = value;
RaisePropertyChanged ( "Source" );
}
Briefly :如何不执行任何操作、不返回任何内容并执行多个指令?:
??
操作员?
答案
对于 [1],您不能:这些运算符用于返回值,而不是执行操作。
表达方式
a ? b : c
评估为b
如果a
为真,计算结果为c
如果a
是假的。
表达方式
b ?? c
评估为b
如果b
不为空且计算结果为c
如果b
一片空白。
如果你写
return a ? b : c;
或者
return b ?? c;
他们会总是返回一些东西。
对于[2],您可以编写一个返回执行"多个操作"的正确值的函数,但这可能比仅仅使用更糟糕if/else
。