元ネタ:まじかんと さんのWebページ
ジェネリック: Java vs C#
http://homepage2.nifty.com/magicant/programmingmemo/genericsjavavscs.html
面白いので、簡単にまとめてみた
| 項目 |
C# |
Java |
| 宣言 |
public class ClassName<T> { } |
public class ClassName<T> { } |
| インスタンス化 |
new MyClass<string>() |
new MyClass<String>() |
型パラメータ の命名規則 |
T が接頭辞 Dictionary<TKey,TValue> |
常に一文字の大文字 Map<K,V> |
| メソッドの宣言 |
public void Method<T>(T t) { } |
public <T> void method(T t) { } |
メソッド 呼び出し例 |
string s = obj.Get<string>(); |
String s = obj.<String>get(); |
| 型パラメータの制約 |
class MyClass { } class MyGenericClass<T> : object where T : MyClass { } |
class MyClass { } class MyGenericClass<T extends MyClass> extends Object { } |