如何在泛型class 中定义TItem 的类型,或将class 名称设置为变量?

How to define the type of TItem inside of generic class, or set class name as a variable?

如何在文件顶部创建一个 class 变量(或 class 别名)并稍后在文件中使用该变量名? 我的目标是在多个地方重用(复制)此 class 并仅更改文件顶部的 class 类型变量。不然每次复制这个class,都要把文件里的class名字全部替换掉​​,一千多行。有时你只是想念其中的一些。 当然,并非所有 classes 都具有相同的属性,当我将 class 名称从 Address 更改为 Employee 时,VS 编辑器将突出显示这些部分 -

"Employee does not contain member called 'StreetNo'"

那我来处理那条红色的波浪线。

可能吗? 例如:

var model = Employee;  // Employee is a class

及以下使用方法如下:

model newInstance = new model();

我尝试使用泛型 (TItem),但我无法在泛型中分配 TItem 的类型 class:

public class Foo<TItem> where TItem : Employee
{
    // where TItem : Employee - this part of code only sets constraint, but doesn't set TItem equal to Employee - (e.g. TItem = Employee)
}

这是剃刀组件的一个非常基本的示例,实际上是部分 class。我只是简化了案例。有什么想法吗?

你可以试试using aliases:

using Model = Employee;

稍后在代码中:

Model newInstance = new Model();