「C Sharp/null合体演算子」を編集中

ナビゲーションに移動 検索に移動

警告: ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。ログインまたはアカウントを作成すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。

この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。

最新版 編集中の文章
1行目: 1行目:
[[C Sharp|C#]]における'''null合体演算子'''(読み:ぬるがったいえんざんし、[[英語]]:null coalescing operator)とは、[[C Sharp/null許容型|null許容型]]や[[C Sharp/参照型|参照型]]などにおいて、その[[値]]が[[C Sharp/null|null]]の場合に指定した値を返す[[演算子]]である。なお、null合体演算子は「'''??'''」という記号をもちいるため「'''??演算子'''」と記述されることもあるが、ハテナ2個とか[[ググれ]]ないわ、読み方に困るわで「null合体演算子」で統一することが望ましいとされている。
+
[[C Sharp|C#]]における'''null合体演算子'''(ぬるがったいえんざんし、null coalescing operator)とは、[[C Sharp/null許容値型|null許容値型]]や[[C Sharp/参照型|参照型]]などにおいて、その[[値]]が[[C Sharp/null|null]]の場合に指定した値を返す[[演算子]]である。
 +
null合体演算子は「??」という記号をもちいるため「'''??演算子'''」と記述されることもあるが、ハテナ2個とか[[ググれ]]ないわ、読み方に困るわで「null合体演算子」で統一することが望ましい。
  
null合体演算子はC# 2.0で追加された機能(演算子)であり、同じくC# 2.0で追加された[[C Sharp/null許容値型|null許容値型]]に付随して追加されたものだと思われるが、従来からの[[C Sharp/参照型|参照型]]でも使える。
+
null合体演算子はC# 2.0で追加された機能(演算子)で、同じくC# 2.0で追加された[[C Sharp/null許容値型|null許容値型]]に付随して追加されたものだと思われるが、従来からの[[C Sharp/参照型|参照型]]でも使える。
  
 
== 記述方法 ==
 
== 記述方法 ==
 
null合体演算子は以下のように記述する。
 
null合体演算子は以下のように記述する。
この例では、xが[[null]]以外の場合にはxを返し、xが[[null]]の場合にはyを返す。
+
この例では、xがnull以外の場合にはxを返し、xがnullの場合にはyを返す。
 
<source lang="csharp">
 
<source lang="csharp">
 
int z = x ?? y;
 
int z = x ?? y;
12行目: 13行目:
 
これを[[三項演算子]]で書くと以下のようになる。
 
これを[[三項演算子]]で書くと以下のようになる。
 
非常にわかりにくく、とくに初心者に見せるための[[ソースコード]]としては最悪である。
 
非常にわかりにくく、とくに初心者に見せるための[[ソースコード]]としては最悪である。
[[三項演算子]]は[[N88-BASIC]]などの時代においては[[if文]]よりも高速に[[条件分岐]]できるという理由で乱用され、また「俺かっこいい」と勘違いしたバカが意味もなく乱用するケース([[中級者病]])も多々見受けられたが、現代においては乱用は避けるべきである。
+
[[三項演算子]]は[[N88-BASIC]]などの時代においては[[if文]]よりも高速に[[条件分岐]]できるという理由で乱用され、また「俺かっこいい」と勘違いしたバカが意味もなく乱用するケースも多々見受けられたが、現代においては乱用は避けるべきである。
 
<source lang="csharp">
 
<source lang="csharp">
 
int z = x != null ? x : y;
 
int z = x != null ? x : y;
48行目: 49行目:
 
     }
 
     }
  
     // C#で定番のエントリポイント
+
     // C#で定番のエントリーポイント
 
     static void Main()
 
     static void Main()
 
     {
 
     {
55行目: 56行目:
 
         int? x = null;
 
         int? x = null;
  
        // null合体演算子の例1
+
// null合体演算子の例1
 
         // y = xがnullでなければx, xがnullなら-1
 
         // y = xがnullでなければx, xがnullなら-1
 
         int y = x ?? -1;
 
         int y = x ?? -1;
63行目: 64行目:
 
         int i = GetNullableInt() ?? default(int);
 
         int i = GetNullableInt() ?? default(int);
  
        // null合体演算子の例3
+
// null合体演算子の例3
        // 参照型の場合もnull許容値型の場合と同じ
+
// 参照型の場合もnull許容値型の場合と同じ
 
         string s = GetStringValue();
 
         string s = GetStringValue();
 
         Console.WriteLine(s ?? "Unspecified");
 
         Console.WriteLine(s ?? "Unspecified");
117行目: 118行目:
 
* [[C Sharp|C#]]
 
* [[C Sharp|C#]]
 
* [[C Sharp/参照型|C#/参照型]]
 
* [[C Sharp/参照型|C#/参照型]]
* [[C Sharp/null許容型|C#/null許容型]]
+
* [[C Sharp/null許容値型|C#/null許容値型]]
 
* [[C Sharp/null|C#/null]]
 
* [[C Sharp/null|C#/null]]
 +
 +
== 参考文献 ==
 +
<references/>
  
 
== 外部リンク ==
 
== 外部リンク ==
 
* [http://msdn.microsoft.com/ja-jp/library/ms173224.aspx ?? 演算子 (C# リファレンス) - MSDN]
 
* [http://msdn.microsoft.com/ja-jp/library/ms173224.aspx ?? 演算子 (C# リファレンス) - MSDN]
 
== 参考文献 ==
 
{{reflist}}
 
  
 
{{stub}}
 
{{stub}}

MonoBookへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細はMonoBook:著作権を参照)。 著作権保護されている作品は、許諾なしに投稿しないでください!

このページを編集するには、下記の確認用の質問に回答してください (詳細):

取り消し 編集の仕方 (新しいウィンドウで開きます)

このページで使用されているテンプレート:

このページは 1 個の隠しカテゴリに属しています: