Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 C#'的等价物是什么;ActionScript 3中的通用词典?_Actionscript 3 - Fatal编程技术网

Actionscript 3 C#'的等价物是什么;ActionScript 3中的通用词典?

Actionscript 3 C#'的等价物是什么;ActionScript 3中的通用词典?,actionscript-3,Actionscript 3,我希望有一个对象集合,它将是我创建的名为Server的类的集合。服务器有一个字符串属性,即它的IP地址,以及许多其他数据和对象 我将有添加和删除服务器到这个集合的方法,偶尔需要通过它的IP地址找到一个服务器。如果我在C#中这样做,我会使用Dictionary

我希望有一个对象集合,它将是我创建的名为Server的类的集合。服务器有一个字符串属性,即它的IP地址,以及许多其他数据和对象

我将有添加和删除服务器到这个集合的方法,偶尔需要通过它的IP地址找到一个服务器。如果我在C#中这样做,我会使用Dictionary<,其中IP字符串是键,服务器对象是值。在尝试添加之前,我可以很容易地检查字典中是否存在条目

因此,我的要求是: 1.能够将项目添加到集合中(我不在乎它们去哪里,前面、后面、中间) 2.能够从集合中的任何位置删除项目。 3.能够确定集合中是否已存在特定IP地址。 4.能够通过服务器对象的IP获取对其的引用。 编辑:哦,是的,我希望它像向量一样是强类型的。。。我想这不是绝对必要的,但会很好

因此,似乎一个关联数组将提供我所需要的,除了我不确定如何执行#3或#4


您可以只使用一个数组。例如:

var dict:Array = [];
var ip = "164.157.012.122"
dict[ip] = "Server name"

if (dict[ip] == "Server name"){
    trace("Yay");
}

//membership
if (dict[ip]){
    trace(ip + " is a member of dict");
} else {
    trace (ip + " is not a member");
}

//removal:
dict[ip] = null;

不幸的是,AS3实际上没有内置的Dictionary类。

您可以只使用数组。例如:

var dict:Array = [];
var ip = "164.157.012.122"
dict[ip] = "Server name"

if (dict[ip] == "Server name"){
    trace("Yay");
}

//membership
if (dict[ip]){
    trace(ip + " is a member of dict");
} else {
    trace (ip + " is not a member");
}

//removal:
dict[ip] = null;

不幸的是,AS3实际上没有内置的Dictionary类。

叫我goofy,但为什么不使用该类呢?这会让你得到一切,除了强打字


如果您想要强类型,那么我会说您需要一个自定义容器,它封装了一个服务器向量,以及一个索引到向量中的IP字符串字典或关联数组。然后您需要公开访问、测试、插入和删除的方法。

叫我goofy,但为什么不使用该类呢?这会让你得到一切,除了强打字


如果您想要强类型,那么我会说您需要一个自定义容器,它封装了一个服务器向量,以及一个索引到向量中的IP字符串字典或关联数组。然后您需要公开访问、测试、插入和删除的方法。

感谢您提供的成员资格测试代码。我有点搞不懂你为什么选择使用数组。为什么我看到文档中说不要将数组用于字符串索引?他们说所有的数组函数都不起作用,这和将一个对象用于关联数组没有什么区别。你是对的,数组和对象之间没有真正的区别。。。我只是习惯性地用了一个。如果您想要一些数组函数,我建议您使用类似于()的东西。AS3有一个字典类。2.正确的删除操作是通过delete操作符完成的,这样密钥就真的消失了,所以您可以在for-in循环中获取所有密钥。3.正确的查找是dict.hasOwnProperty(id),使用delete运算符删除也会以布尔值的形式返回成功。感谢您提供有关删除的说明。AS3中的dictionary类与C#中的dictionary类完全不同,它似乎提供了与关联数组相同的特性,只是严格相等。我真的不需要严格的等式,所以DayTurns解决方案可以很好地工作。感谢成员资格测试代码。我有点搞不懂你为什么选择使用数组。为什么我看到文档中说不要将数组用于字符串索引?他们说所有的数组函数都不起作用,这和将一个对象用于关联数组没有什么区别。你是对的,数组和对象之间没有真正的区别。。。我只是习惯性地用了一个。如果您想要一些数组函数,我建议您使用类似于()的东西。AS3有一个字典类。2.正确的删除操作是通过delete操作符完成的,这样密钥就真的消失了,所以您可以在for-in循环中获取所有密钥。3.正确的查找是dict.hasOwnProperty(id),使用delete运算符删除也会以布尔值的形式返回成功。感谢您提供有关删除的说明。AS3中的dictionary类与C#中的dictionary类完全不同,它似乎提供了与关联数组相同的特性,只是严格相等。我真的不需要严格的相等,因此DayTurns解决方案可以正常工作。您只需将查找字典隐藏在类中,并将类型化的访问方法作为add(ip:String,server:server):void、remove(ip:String):server和get(ip:String):server。。。greetzyou只需在类中隐藏查找字典,并将访问方法类型化为add(ip:String,server:server):void、remove(ip:String):server和get(ip:String):server。。。我会把ip地址存储为整数。。。32位是一个有效的ip。。。“123.456.789.876”不是。。。关于设计,我会将该变量设置为私有/受保护。。。还有一个非常不相关的注意事项:按照惯例,大写字母是为as3中的类保留的。。。完全是主观的,但是如果你打算开始一些合作,你可能想习惯它…你可能想看看haxe(haxe.org)。。。它支持泛型。。。所以你可以简单地用Hash。。。除此之外,它还是一种伟大的、年轻的、有前途的语言…我个人会将ip地址存储为INT。。。32位是一个有效的ip。。。“123.456.789.876”不是。。。关于设计,我会将该变量设置为私有/受保护。。。还有一个非常不相关的注意事项:按照惯例,大写字母是为as3中的类保留的。。。完全是主观的,但是如果你打算开始一些合作,你可能想习惯它…你可能想看看haxe(haxe.org)。。。它支持泛型。。。所以你可以简单地用Hash。。。除此之外,它还是一门伟大的、年轻的、有前途的语言。。。