我试图做一个简单的数据系列测试andeverything如预期运作,但我想改用为什么我不能使用动态?
List<DateTime> events = new List<DateTime>();
到
List<dynamic> events = new List<dynamic>();
当我的列表切换到动态我收到这2错误。 “ ”找不到需要编译动态表达式的一个或多个类型。是否缺少引用?并且这两个错误发生在Console.Writeline
任何想法如何可以输出与动态列表?
这里是我的代码:
[TestMethod]
public void TimeSeriesData()
{
List<dynamic> events = new List<dynamic>();
var stream = new
{
Id = 15,
Name = "StreamA" + 15,
TypeId = "TypeA"
};
_server.PostStream(stream);
DateTime startTime = DateTime.Today; // 12:00
DateTime endTime = DateTime.Today; // 12:00 +1 sec
endTime = endTime.AddDays(1);
endTime=endTime.AddSeconds(1);
for (int i = 0; i < 3000; i++)
{
if (i % 2 == 0) //is even
{
var dataStart = new
{
TimeId = startTime.AddSeconds(i),
ValueStart = i
};
events.Add(startTime.AddSeconds(i));
}
else //is odd
{
var dataEnd = new
{
TimeEnd = endTime.AddSeconds(-i),
ValueEnd = i
};
events.Add(endTime.AddSeconds(-i));
}
}
foreach (var item in events)
Console.WriteLine("Time: {0} ", item.ToString());
}
虽然你不应该真的做一个通用列表,而是使用接口或代表行为的东西,你可以在那里使用'object'而不是'dynamic',它会起作用。 –
是否在您的测试项目中引用了“Microsoft.CSharp”?你在'Console.WriteLine'调用中看到了那个错误吗? –
我必须在代码中使用动态调用,特拉维斯......否则我会使用对象 – Mdjon26