Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.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# 如何基于泛型实现不同的编译时实现_C#_Generics_Asp.net Core - Fatal编程技术网

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;}
}