在我的 ASP.NET 网站中,我有一个返回 dynamic
类型值的方法。根据特定条件和结果,此方法将返回 bool 值或 SortedList。
代码太多无法粘贴,但例如:
public dynamic ReturnThis(dynamic value)
{
if(someConditionIsMet)
{
value = true;
}
else
{
value = new List<String>().Add(new Person() { Name = "Travis" });
}
return value;
}
我的问题是,我想在调用此方法之后确定值的数据类型
,然后再操作或读取其数据。但我不确定如何检查 dynamic value
是什么类型。我该怎么做?
最佳答案
这两种解决方案都对我有用。在 Smeegs 链接的文档中,is
提到了关键字。我想出了一个更具可读性的解决方案:
if(value is Boolean) { }
和 if(value is List<Person>) { }
工作测试:
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication3348
{
class Program
{
class Person
{
string Name = "";
}
static void Main(string[] args)
{
Console.WriteLine("Assigning List to value");
dynamic value = new List<Person>();
if (value is List<Person>)
{
Console.WriteLine("value is a list");
}
value = false;
Console.WriteLine("Assigning bool to value");
if (value is Boolean)
{
Console.WriteLine("value is bool");
}
Console.Read();
}
}
}
关于c# - 如何在运行时检查动态数据类型的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23143184/