検索に移動C#におけるnull許容型(ぬるきょようあたいがた)とは、本来であればnull値を受け入れない値型を拡張し、null値を受け入れるようにしたものである。一部ではnull許容値型と「値」をつけて呼ばれることもある。一文字違いのどうでもいい点であり、大半のC#使いには「null許容」まで言えば通じるのでどちらを使っても良い。MSDN上でも両方とも使われている。本来「ぬるり」が発生しないはずの値型において「ぬるり」が発生するようになるので取扱いには注意する必要がある。ソースを編集]null許容型の実体はジェネリックなNullable<T>構造体であり、本来であれば以下のように記述する。x;ただ、上記の記法はキーボードを打つ量が多いということで、C#には値型の末尾に「?」を付けることでnull許容型を表すという省略表記が用意されており、通常はこちらを使うのが一般的である。ソースを編集]null許容型はもともとnull値を受け入れない値型専用であり、もともとnull値を受け入れる参照型には使えない(使う必要がない)。Nullable<T>構造体では値型以外を受け入れないようにするため、Nullable<T>構造体の宣言において以下のようにwhereによる縛りを付けることで実現している。n;」などとは書けない。ソースを編集]データベースとのマッピングにnull許容型を使っていると、それとは正反対の参照型がnullを受け入れなくなるNotNullable<T>が欲しくなるが、そのようなものは今のところ無いと思われる。NULLなどと対応するnullを受け入れないstringクラスなどが欲しくなる。3.0で導入された自動プロパティが使えないので非常に面倒な古くさい記法となってしまっている。ServerなどのRDBMS(俗に言うデータベース)では、フィールドごとにNULLを受け入れるか受け入れないかを指定できるが、そのような外部システムの型とC#の型をマッピングする際にムダに悩む必要がなくなる。Sharp/null許容型」は、まだ書きかけの項目です。加筆、訂正などをして下さる協力者を求めています。このテンプレートは分野別のスタブテンプレート(Monobook:スタブカテゴリ参照)に変更することが望まれています。プライバシー・ポリシーMonoBookについて免責事項モバイルビュ。