ジェネリックとデリゲート

ジェネリクス型

  • クラスのメンバを宣言するときに,

public class SomeClass{

	private strig member1;
	private int member2;

	someClass(){
		this.member1="hoge";
		this.member2=7;
	}
}

としてしまうと,member1member2には,それぞれStringintしか使用できなくなる。

  • ジェネリクスを使用すると,メンバ変数の型をインスタンス時に指定することができる。

public class SomeClass<T1, T2>{

	private T member1;
	private T2 member2;

}

public static void main(String args[]){
	SomeClass<String, int> obj = new SomeClass<String, int>();
}

デリゲートについて

  • 匿名関数
    • メソッドの型

// 単なる型
public delegate void TestMethod(String s);

  • 使用方法は,作成した型で変数を作成し使用する。

public delegate void TestMethod(String s);

TestMethod test = delegate(String msg){
	MessageBox.Show(msg)
};

test("test");
test("hoge");
test("fuga");

  • .NETのフォームのイベントハンドラ等で使用されている。
  • 引数を使用しない匿名関数は,Actionという名前で宣言されている。

Action act = delegate(){
	MessageBox.Show("Action");
}

act()

ラムダ式

  • いちいちdelegateを書くのが面倒くさいので,ラムダ式を使用する。

TestMethod test = delegate(String msg){
	MessageBox.Show(msg)
};

TestMethod test = (nsg) => {
	MessageBox.Show(msg)
};

TODO: C#の部分をJavaに置き換え

以上

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です