ブックマーク / ufcpp.net (4)

  • null許容値型(Nullable<T> 型)

    概要 通常、「値型」は null 値(無効な値)を取れません。 ところが、データベース等、一部のアプリケーションでは、 値型の通常の(有効な)値と null(無効な値)を取るような型が欲しいときがあります。 そこで、C# 2.0 では、null 許容型(Nullable 型)という特殊な型が用意されました。 Ver. 8.0 C# 8.0 では、参照型についても ? の有無で null の可否を指定する機能が追加されました。 この機能を指して null 許容参照型(nullable reference type)と言ったりします。 この null 許容参照型と区別する意味で、項で説明している機能(C# 2.0 時代には唯一の null 許容型だった)を指して、null 許容値型(nullable value type)と呼ぶこともあります。 ポイント 値型 T に対して、T? をいう書き

    null許容値型(Nullable<T> 型)
    astexception
    astexception 2010/07/27
    ・・・全然しらなんだ。Link:【Nullable 型 (C# によるプログラミング入門) 】 :
  • 優先度付き待ち行列(アルゴリズムとデータ構造)

    概要 優先度付き待ち行列(priority queue)とは、 ある優先度(例えば、値の大きな物ほど優先度が高いとか)に従って、 優先度の高いものから順に取り出すことの出来るコレクションです。 挿入順序がどうであれ、優先度の高いものが必ず1番最初に取り出されます。 優先度付き待ち行列 名前に「待ち行列」という言葉が含まれていることから分かるように、 優先度付き待ち行列への値の挿入・取り出しはそれぞれエンキュー・デキューといいます。 「待ち行列」のときと同様に、 「スタック」と呼び名をそろえるために、 プッシュ・ポップという名前で実装する場合もあります。 このようなコレクションを実現するためには、 例えば、ソート済みの配列を使うといった方法も考えられますが、 優先度が1番高い要素1つだけが分かれば十分なのに、 ソートを行うのでは余分な労力を裂いていることになります。 これに対して、 優先度が

    優先度付き待ち行列(アルゴリズムとデータ構造)
    astexception
    astexception 2010/04/19
    ここ見ながら優先度付き待ち行列を実装など。Link:【優先度付き待ち行列 (アルゴリズムとデータ構造) 】 :
  • 拡張メソッド(C# によるプログラミング入門)

    概要 拡張メソッドは、静的メソッドをインスタンスメソッドと同じ形式で呼び出せるようにできるものです。 すなわち、 今までなら、 int x = int.Parse("1"); と書いていたものを、 static class Extensions { public static int Parse(this string str) { return int.Parse(str); } } というような静的メソッドを用意することで、 以下のような構文で呼び出せるようになります。 int x = "1".Parse(); ポイント 拡張メソッド: 静的メソッドをインスタンスメソッドと同じ書式で呼び出せるようにすることで、 あたかもクラスに新しいメソッドを追加したかのように見せかける仕組みです。 単に、静的メソッドを後置き記法で呼び出せるようになっただけとも考えることができます。 定義側: 第1引

    拡張メソッド(C# によるプログラミング入門)
    astexception
    astexception 2010/03/04
    めもめも。Link:【拡張メソッド(C#によるプログラミング入門)】 :
  • C# 4.0 の新機能

    2008年10月、3年ぶりに C# バージョンアップに関する情報が公開されました。 C# 4.0 で追加される機能は以下の3つ。 動的型付け変数 オプション引数・名前付き引数 ジェネリクスの共変性・反変性 ( 注 2008/11/14: 2008年10月に発表された内容としてはこの3つですが、今後の機能追加に関して。 C# 4.0 CTP の顧客フィードバックサイトの掲示板議論によれば、 「C# 4.0 の仕様は現状で確定ではない。ただし、これから大幅な変更は入れたくはない。」ということらしい。 C# 3.0 の時には、後から追加された機能は自動プロパティとpartialメソッドだけで、 「小さな変更」だったので、今回も同程度の「小さな変更」くらいしか追加されないはず。 ) 動的型付け変数 dynamic キーワードを使うことで、動的型付け変数を定義できます。 dynamic 型を使うこと

    C# 4.0 の新機能
    astexception
    astexception 2010/01/19
    今更だけどみてるなう。 C# 4.0 の新機能(C# によるプログラミング入門)-
  • 1