ジェネリック クラスを定義するときに、"class" と "new()" の両方の制約を設定することに意味があるかどうか疑問に思っています。次の例のように:
class MyParanoidClass<T> where T : class, new()
{
//content
}
どちらの制約も、 T が参照型であることを指定しています。「クラス」制約は、暗黙的なコンストラクターが存在することを意味しませんが、「new()」制約は、追加のパブリック コンストラクター定義を持つ「クラス」を必要とします。
私の最後の(の定式化)質問は、上記のステートメントのようにジェネリッククラスを定義することから何か利点がありますか、それとも「new()」は両方の制約をカプセル化しますか?