C#Tip--巧みに使う??演算子
9882 ワード
?? MSDN注記:
もし?演算子の左オペランドは空ではありません.この演算子は左オペランドを返します.そうしないと、右オペランドを返します.
C#2.0に新たに追加された演算子としては、実際にはあまり使われていませんが、うまく運用できれば、思いがけない効果が得られます
例1、オブジェクトの初期化
例2、関数は値を返します
これは2つの簡単な例にすぎず、具体的な応用は実際の場面に基づいて1、3を挙げなければならない.
もし?演算子の左オペランドは空ではありません.この演算子は左オペランドを返します.そうしないと、右オペランドを返します.
C#2.0に新たに追加された演算子としては、実際にはあまり使われていませんが、うまく運用できれば、思いがけない効果が得られます
例1、オブジェクトの初期化
public
class
Program
{
class
MyClass {}
static
MyClass instance;
static
void
Main()
{
//
instance == null,
//
:
if
(instance
==
null
)
{
instance
=
new
MyClass();
}
//
?? :
instance
=
instance
??
new
MyClass();
}
}
例2、関数は値を返します
public
class
Program
{
public
string
Str1 {
get
;
set
; }
public
string
Str2 {
get
;
set
; }
public
string
Str3 {
get
;
set
; }
//
Str1 NULL Str1, Str2,
public
override
string
ToString()
{
//
if-else
if
(Str1
!=
null
)
{
return
Str1;
}
else
if
(Str2
!=
null
)
{
return
Str2;
}
else
if
(Str3
!=
null
)
{
return
Str3;
}
else
{
return
base
.ToString();
}
//
?:
return
Str1
!=
null
?
Str1 : (Str2
!=
null
?
Str2 : (Str3
!=
null
?
Str3 :
base
.ToString()));
//
??
return
Str1
??
(Str2
??
(Str3
??
base
.ToString()));
}
}
これは2つの簡単な例にすぎず、具体的な応用は実際の場面に基づいて1、3を挙げなければならない.