C#の特徴
C#は、Strongly typed languageである。
C# 2.0からはC++のテンプレートのようなGenericsが導入されている。
Generics
ほぼC++のテンプレートのような動作をする。
面白い事柄
.NET Frameworkでは、複数のアプリケーション間でのガベージコレクションが共有されている。
可変長配列
C++のvectorの代わりに、C#では、System.Collections.Generic.Listを使う。
List<int> scores = new List<int>();
scores.Add(10);
scores.Insert(0, 20);
Console.WriteLine("{0}", scores[1]);
古い方法では、ArrayList(System.Collections.ArrayList)が使える。
points = new ArrayList();
points.Add(10);
staticクラス
staticメソッドばかりのクラスは、staticクラスとして定義すると良い。
public static class Angle {
public static int Add(...)
}
出力用の引数
C#では値を返すために使う引数を明示的に記述することができる。
void foo(int input1, int input2, out int output1, out int output2) {
output1 = input1 + input2;
output2 = input1 * input2;
}
この関数foo()を呼び出すには、
int a, b;
foo(1, 2, out a, out b);
というように出力用変数にoutをつけなければならない。