Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 泛型类.net的泛型扩展_C#_Generics_Extending - Fatal编程技术网

C# 泛型类.net的泛型扩展

C# 泛型类.net的泛型扩展,c#,generics,extending,C#,Generics,Extending,我有一个基类,它是许多应用程序的核心模型。这个类使用泛型 public class CoreBaseModel<TModel> where TModel : CoreBaseModel<TModel>, new() { public string connectionString = "..."; //lots of member } 公共类CoreBaseModel,其中TModel:CoreBaseModel,new(){ 公共字符串连接字符串=“…

我有一个基类,它是许多应用程序的核心模型。这个类使用泛型

public class CoreBaseModel<TModel> where TModel : CoreBaseModel<TModel>, new() {
    public string connectionString = "...";
    //lots of member
}
公共类CoreBaseModel,其中TModel:CoreBaseModel,new(){
公共字符串连接字符串=“…”;
//很多会员
}
对于每个应用程序,我都希望扩展这个基类并覆盖一些成员(例如连接字符串)

公共类CurrentAppBaseModel,其中TModel:CoreBaseModel,new(){
公共字符串connectionString=“数据源=…”;
}
在应用程序内部,我为每个模型(比如Address、Employee等)扩展了这个类。这些类也应该是泛型,因为我使用当前类的列表,以防我想在集合中返回相同的模型

public class AddressModel : CurrentAppBaseModel<AddressModel> {
    //lots of member
}
公共类AddressModel:CurrentAppBaseModel{
//很多会员
}
问题是我不知道如何编写CurrentAppBaseModel,因为它仍然需要使用泛型,但也需要扩展基础


第一,我不太明白你的问题。您的代码应该按原样工作。(提示:不要使用公共字段)@knittl:我无法构建它,因为它说类型“AddressModel”不能用作泛型类型或方法CurrentAppBaseModel中的类型参数“TModel”。没有从“AddressModel”到“CoreBaseModel”的隐式引用转换。还有:AddressModel.someMethod:找不到合适的方法进行覆盖。请尝试
AddressModel:CurrentAppBaseModel
,这样是否有效?或者您想要
CurrentAppBaseModel:CoreBaseModel
public class AddressModel : CurrentAppBaseModel<AddressModel> {
    //lots of member
}