我一直在努力将旧服务器从Flash游戏转换为我可以用作新服务器 - 客户端系统的起点的东西,但是我只是遇到了一个我无法弄清楚的停止点。有人可以查看这段代码并将其翻译成C#吗?
var dists:Array = [];
for(a=0;a<deltas.length;a++) {
dists.push({offset:Math.abs(deltas[a]-avg),
time:deltas[a],
toString:function(){
return "offset:" +
this.offset + ",
time: " + this.time }
})
}
作为一个注释,这些数字是双倍的 - 除了for循环中的int。进一步澄清,Dists我已经翻译成双列表数组,但这可能是错误的。这就是我到目前为止所做的:
List<Double> Dist = new List<double>();
for (int i = 0; i < Deltas.Count; i++)
{
Dist.Add(Math.Abs(Deltas[i] - Average));
}
答案 0 :(得分:1)
根据所提供的信息,这是我可以解决的问题......
void Main()
{
Dictionary<int, double> deltas = new Dictionary<int, double>();
int avg = 0;
List<Item> dists = new List<Item>();
for (int a = 0; a < deltas.Count(); a++)
{
dists.Add(new Item { Offset = Math.Abs(deltas[a] - avg), Time = deltas[a].ToDateTime()});
}
}
public class Item
{
public double Offset { get; set; }
public DateTime Time { get; set; }
public string DisplayString { get; set; }
public override string ToString()
{
return string.Format("offset: {0}, time: {1}", this.Offset, this.Time);
}
}
public static class Extension
{
public static DateTime ToDateTime(this double time)
{
return new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).AddSeconds(time);
}
}
答案 1 :(得分:0)
声明一个新数组var dists:Array = [];
:
deltas
对于for( a=0;a<deltas.length;a++){
中的每个值:
dists
将新对象插入dists.push(...)
数组:
offset
该对象将有两个属性 - time
和toString()
- 并且将采用offset
方法以友好的方式格式化数据。
offset:Math.abs(deltas[a]-avg)
值将是当前增量与平均值之间的差值:
time
time:deltas[a]
值将是当前的delta:
{{1}}