小编Som*_*Guy的帖子

具有泛型类声明的命名空间约束

我想知道是否(如果是这样的话)可以将命名空间定义为泛型类声明中的约束参数.

我有的是这个:

namespace MyProject.Models.Entities < - 包含要在db中保留的类

namespace MyProject.Tests.BaseTest < - 我觉得很明显

现在我的'BaseTest'类的变化看起来像这样;

public class BaseTest<T>
Run Code Online (Sandbox Code Playgroud)

BaseTest比在测试期间删除所有添加到数据库的实体更多(在编写本文时).所以通常我会将测试类声明为:

public class MyEntityRepositoryTest : BaseTest<MyEntity>
Run Code Online (Sandbox Code Playgroud)

我想要做的是类似于以下内容:

public class BaseTest<T> where T : <is of the MyProject.Models.Entities namespace>
Run Code Online (Sandbox Code Playgroud)

现在我知道完全可以简单地声明一个'BaseEntity'类,在该类中,在MyProject.Models.Entities命名空间中创建的所有实体都将从该类继承;

public class BaseTest<T> where T : MyBaseEntity
Run Code Online (Sandbox Code Playgroud)

但是......我实际上并不需要或想要.另外,我使用ORM和带有继承的映射实体,虽然可能,但增加了一层不需要的复杂性.

那么,是否可以将泛型类参数约束到命名空间而不是特定类型?

c# generics parameters constraints

6
推荐指数
1
解决办法
2816
查看次数

标签 统计

c# ×1

constraints ×1

generics ×1

parameters ×1