タグ

2011年10月17日のブックマーク (5件)

  • イテレーター - C# によるプログラミング入門 | ++C++; // 未確認飛行 C

    概要 C# の foreach 構文は、コレクションクラスの利用者側から見ると非常に便利な機能です。 しかしながら、実装側から見た場合、IEnumerableやIEnumeratorインターフェースを実装する必要があり、結構面倒な作業が必要でした。 この実装側の労力を軽減するために、C# 2.0ではイテレーター構文というものが追加されました。 ポイント イテレーター構文: IEnumerator を簡単に実装するための機能。 return の代わりに yield return イテレーター ブロック メソッドやプロパティのgetアクセサーなどを定義する際、ブロック中にreturnの代わりにyield returnもしくはyield breakを書くことで、通常のメソッドやプロパティとは違った動作が得られます。この、yield returnもしくはyield breakを含むブロックのことを

    イテレーター - C# によるプログラミング入門 | ++C++; // 未確認飛行 C
    n-e
    n-e 2011/10/17
  • Java 開発者向けチート シート

    いわゆる goto 文(無条件ジャンプ)。 Java はキーワードの予約のみで、実際は機能を持っていません。

    Java 開発者向けチート シート
    n-e
    n-e 2011/10/17
  • 可変長引数

    概要 C# では params キーワードを用いることでメソッドの引数の数を可変にすることが出来ます。 ポイント 定義側の例:int Sum(params int[] args) { ... } 利用側の例:Sum(1, 2, 3, 4, 5);… これで、Sum(new int[] { 1, 2, 3, 4, 5 });と同じ意味。 params キーワード 例えば、可変個の整数のうち最大の整数を求めるメソッドを作りたいとします。 可変長引数を使わずにメソッドを実装すると以下のようになるでしょう。 using System; class ParamsTest { static void Main() { int a = 314, b = 159, c = 265, d = 358, e = 979; // ↑こいつらの最大値を探したいとき、 int[] tmp = new int[]{a

    可変長引数
    n-e
    n-e 2011/10/17
  • COM 相互運用時の特別処理

    概要 Ver. 4.0 .NET Framework には COM 相互運用機能があって、COM のクラスをあたかも .NET のクラスであるかのように扱うことができます。 ただ、COM が主流だった時代と今とでは大分設計思想に差があって、 .NET 的には不要だけども、COM 相互運用をする上では欲しい機能というのがいくつかあります。 そこで、C# 4.0 では、COM 相互運用用のクラス (RCW(Runtime Callable Wrapper)といいます。.NET ランタイムから COM を呼び出せるようにしたラッパークラス)に対してだけ特別な処理をするようになりました。 COM への特別処理は以下の2点。 ref 引数(「引数の参照渡し」参照)に対して、ref キーワードを付けなくても呼び出せるようになった。 get_X(index)、set_X(index, value)という

    COM 相互運用時の特別処理
    n-e
    n-e 2011/10/17
  • オプション引数・名前付き引数(C# によるプログラミング入門)

    概要 Ver. 4.0 C# 4.0 でオプション引数と名前付き引数が追加されました。 ポイント オプション引数と規定値:int Sum(int x = 0, int y = 0) { return x + y; }とか書けるようになった オプション引数の省略:Sum(); Sum(1); Sum(1, 2); 名前付き引数:Sum(x: 1, y: 2); Sum(y:1, x: 2); Sum(y: 1); 引数の規定値も、引数名も、public なものは後から変更してはいけない(利用側コードを壊す)ので要注意。 オプション引数は C++ にもある機能ですね。 これは、メソッドのオーバーロードで似たようなことが可能なので、 今まで C# では敬遠し続けてきたようです。 まず、C++ 同様、 以下のように規定値(default value)を持ったメソッドを定義します。 static i

    オプション引数・名前付き引数(C# によるプログラミング入門)
    n-e
    n-e 2011/10/17