我有一段服务器-客户端代码,但是这个位在 AS3 中,我在 C# 中工作。有人可以帮我翻译吗?
I have a piece of server-client code, however this bit is in AS3 and I'm working in C#. Can someone help me translate it?
我一直在努力将旧服务器从 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));
}
声明一个新数组dists
:
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]
根据所提供的信息,这就是我可以解决的...
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);
}
}
我一直在努力将旧服务器从 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));
}
声明一个新数组dists
:
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]
根据所提供的信息,这就是我可以解决的...
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);
}
}