如何解决如何在C#中将动态数据类型作为参数传递?
| 我在c#中有一个动态生成xml的方法。 但是,直到运行时,我才知道具体的元素/属性。 当我不知道数据类型,名称和值或数量是什么时,如何声明参数?解决方法
您正在寻找params关键字。还是你:)
, 您可以对所有参数使用“ 0”,因为它是所有其他类型的基类。然后,您可以使用ѭ1find方法找出实际的声明类型,并适当地对待该值。
例如
if (myParam.GetType() == typeof(Int32))
{
// treat value as integer ...
int val = (int)myParam;
}
或者您可以使用语法
if (myParam is Int32)
{
// treat value as integer ...
int val = (int)myParam;
}
else if (myParam is String)
{
string val = myParam.ToString();
}
等等
, 另一种选择是使用泛型。如果您需要对可以传入的类型施加约束,这将很有帮助:
public void BuildXml<T>(T obj)
{
// do work
}
或者,如果您期望对象的集合:
public void BuildXml<T>(IEnumerable<T> items)
{
// do work
}
然后,您可以使用反射来获取所需的相关数据。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。