別のStackExchangeの質問で、このプロトタイプを使用している人に気付きました。
void DoSomething<T>(T arg) where T: SomeSpecificReferenceType
{
//Code....
}
型の制約は1つだけであることに注意してください(SomeSpecificReferenceType
)。単純にではなく、そのように記述することの違いと利点は何ですか?
void DoSomething(SomeSpecificReferenceType arg)
{
//Code....
}
どちらの場合も、arg
コンパイル時の型チェックの対象となります。どちらの場合も、メソッドの本体は、arg
コンパイル時に認識されている特定の型の(またはその子孫である)知識に安全に依存できます。
これは、熱心な開発者が通常の継承について学ぶ前にジェネリックについて学ぶ場合ですか?または、メソッドシグネチャがこのように記述される正当な理由がありますか?