-1

実際の利点が明らかでない場合、人々はジェネリックの使用についてどう思いますか. 以下は、私が取り組んでいるコードに似たコードのスニペットの例です。ジェネリックを使用することで得られるメリットがあるかどうかを判断しようとしています。

   public void DoSomething<Request>(Request request)
    {

        if (request == null) 
        {
            throw new ArgumentNullException("request");
        }


        if (Request is ISomeInterface)
        {
            DoSomething();
        }
        else
        {
        DoSomethingElse();
        }
    }

オブジェクトだけを使用しないのはなぜですか?

4

1 に答える 1

3

引用: C#: System.Object と Generics

object == キャスト操作と値型のボックス化/ボックス化解除の使用。これらの理由により、ジェネリックはより高速でエレガントです (キャストなし)。そして-主な理由は、ジェネリックを使用して「InvalidCastException」を取得しないことです

したがって、ジェネリック == 速度とコンパイル時のエラーです。オブジェクト == 実行時例外、低速 (場合によっては大幅に低速)

于 2013-04-03T09:05:21.693 に答える