c# – 输入参数与泛型

是否有理由使用Type参数而不是泛型,即:
// this...
void Foo(Type T);
// ...over this.
void Foo<T>();

在我看来,泛型更有用,因为它们提供泛型约束和C#4.0,逆变和协变,以及可能还有一些我不知道的其他功能.在我看来,通用形式具有所有优点,并且没有第一个也不具有的负面效果.那么,有没有你使用第一个的情况?

解决方法

绝对:当你直到执行时才知道类型.例如:
foreach (Type t in someAssembly.GetTypes())
{
    Foo(t);
}

当Foo是通用的时候这样做是一个痛苦的屁股.这是可行的,但很痛苦.

它还允许参数为null,这在某些情况下会有所帮助.

相关文章

目录简介使用JS互操作使用ClipLazor库创建项目使用方法简单测...
目录简介快速入门安装 NuGet 包实体类User数据库类DbFactory...
本文实现一个简单的配置类,原理比较简单,适用于一些小型项...
C#中Description特性主要用于枚举和属性,方法比较简单,记录...
[TOC] # 原理简介 本文参考[C#/WPF/WinForm/程序实现软件开机...
目录简介获取 HTML 文档解析 HTML 文档测试补充:使用 CSS 选...