-1

当没有明显的实际好处时,人们如何看待泛型的使用。下面是一个示例代码片段,它与我正在处理的代码相似,我正在尝试确定使用泛型可以获得什么好处。

   public void DoSomething<Request>(Request request)
    {

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


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

为什么不直接使用 Object?

4

1 回答 1

3

引用自:C#:System.Object 与泛型

使用 object == cast 操作和值类型的装箱/拆箱。由于这些原因,泛型更快、更优雅(没有强制转换)。而且 - 主要原因是,您不会使用泛型获得“InvalidCastException”

因此,泛型 == 速度和编译时错误。对象 == 运行时异常,速度较低(有时低得多)

于 2013-04-03T09:05:21.693 回答