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