C# 如何基于泛型实现不同的编译时实现
我正在尝试创建一个生成器,并希望根据特定类型指导用户所需的输入,我尝试实现的一个示例是:C# 如何基于泛型实现不同的编译时实现,c#,generics,asp.net-core,C#,Generics,Asp.net Core,我正在尝试创建一个生成器,并希望根据特定类型指导用户所需的输入,我尝试实现的一个示例是: AddLog<Person>(new Info{Name = "john", LastName = "doe"}) vs AddLog<Company>(new Info{Name = "company", ParentOrg = "parent company"}) 这样的事情是可能的,还是不使用泛型?你到底想实现什么?这是什么Infoclass?就我个人而言,这个问题并不清楚。
AddLog<Person>(new Info{Name = "john", LastName = "doe"})
vs
AddLog<Company>(new Info{Name = "company", ParentOrg = "parent company"})
这样的事情是可能的,还是不使用泛型?你到底想实现什么?这是什么
Info
class?就我个人而言,这个问题并不清楚。如果我正确理解您的需求,您希望有多个AddLog
方法,这些方法根据其泛型参数将不同的Info
类作为参数,并具有不同的逻辑,即模板方法专门化。恐怕这在C#中是不可能的。我建议使用具体的方法(AddPersonLog
,AddCompanyLog
),或者创建不同类型的PersonInfo
和CompanyInfo
,根据不同的AddLog
专门化实现相同的接口。@ZdeněkJelínek-exact@YeldarKurmangaliyev-我想信息更像是“日志”类,我试图避免创建不同的AddLog方法和信息类。你到底想实现什么?这是什么Info
class?就我个人而言,这个问题并不清楚。如果我正确理解您的需求,您希望有多个AddLog
方法,这些方法根据其泛型参数将不同的Info
类作为参数,并具有不同的逻辑,即模板方法专门化。恐怕这在C#中是不可能的。我建议使用具体的方法(AddPersonLog
,AddCompanyLog
),或者创建不同类型的PersonInfo
和CompanyInfo
,根据不同的AddLog
专门化实现相同的接口。@ZdeněkJelínek-exact@YeldarKurmangaliyev-我想信息更像是“日志”类,我试图避免创建不同的AddLog方法和Info类
public class Info {
public string Name {get;set;}
public string LastName {get;set;}
}
vs
public class Info {
public string Name {get;set;}
public string ParentOrg {get;set;}
}