Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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# - Fatal编程技术网

C# 接受类构造函数列表中的泛型数据类型

C# 接受类构造函数列表中的泛型数据类型,c#,C#,我想接受列表中的任何类型的数据,请一些人帮助。请参阅**中的以下方法和类方法 public void sendmail(字符串发送者、EmailObjects EmailObjects) 公共类电子邮件对象 { 公共字符串EMAILLIST{get;set;} 公共字符串CC_EMAILLIST{get;set;} 公共字符串BCC_电子邮件列表{get;set;} 公共字符串主题行{get;set;} **公共列表lstOfValueToReplace{get;set;}** 公共字符串HTM

我想接受列表中的任何类型的数据,请一些人帮助。请参阅**中的以下方法和类方法

public void sendmail(字符串发送者、EmailObjects EmailObjects)

公共类电子邮件对象
{
公共字符串EMAILLIST{get;set;}
公共字符串CC_EMAILLIST{get;set;}
公共字符串BCC_电子邮件列表{get;set;}
公共字符串主题行{get;set;}
**公共列表lstOfValueToReplace{get;set;}**
公共字符串HTMLbody{get;set;}
**公共列表lsthmlbody{get;set;}**
}

这实际上取决于您所处的环境

如果列表可以同时包含多个类型,则可以使用

List<object>
public List<dynamic> DynamicList {get;set;}
列表
就像C#中的任何东西都继承自对象类一样。但是要小心,因为你不知道是什么类型的,你必须进行检查

如果列表始终包含相同的数据类型,则可以使用泛型:

public class EmailObjects<TtoReplace, ThtmlBody>
{
    [...]

    public List<TtoReplace> lstOfValueToReplace { get; set; }**

    public string HTMLbody { get; set; }

    public List<ThtmlBody>  lsthtmlBody { get; set; }**
}
公共类电子邮件对象
{
[...]
公共列表lstOfValueToReplace{get;set;}**
公共字符串HTMLbody{get;set;}
公共列表lsthmlbody{get;set;}**
}

但是这意味着这个类的调用者知道哪些类型将包含在您的列表中。

Martin Verjans的答案似乎是最简单的方法,但也许您可以使用

List<object>
public List<dynamic> DynamicList {get;set;}
动态类型非常有用,特别是当您正在反序列化从API调用检索的对象时,例如,因为您可以使用预期的属性名称来访问该值

var contacts = JsonConvert.DeserializeObject<dynamic>(contactsResponse.Content);
if (contacts.totalElements > 0) {
   // Do stuff
}
var contacts=JsonConvert.DeserializeObject(contactsResponse.Content);
如果(contacts.totalElements>0){
//做事
}

如果您的目标是.NET Framework,则需要引用Microsoft.CSharp,而.NET Core似乎并非如此。

您的具体问题是什么?我想接受泛型类型的数据,可以是date、string、int.public List lsthtmlBody{get;set;}这只能接受字符串,对吗?这是我从中通过调用方法public void sendmail(string sender,EmailObjects EmailObjects)接受参数的方法