나는 서버라고 불리는 클래스의 객체 컬렉션을 갖고 싶습니다. 서버에는 IP 주소뿐만 아니라 많은 다른 데이터와 객체 인 문자열 속성이 있습니다.ActionScript 3에서 C#의 일반 사전의 동등 물은 무엇입니까?
이 콜렉션에 서버를 추가하고 제거하는 방법이 있습니다. 때때로 IP 주소로 서버를 찾을 필요가 있습니다. C#에서이 작업을 수행했다면 Dictionary <을 사용할 것입니다. 여기서 IP 문자열은 키이고 Server 객체는 값이됩니다. 항목을 추가하기 전에 사전에 항목이 있는지 쉽게 확인할 수 있습니다.
내 요구 사항은 다음과 같습니다. 1. 컬렉션에 항목을 추가 할 수있는 기능 (앞뒤, 중간에 상관 없음) 2. 컬렉션의 어느 위치에서나 항목을 제거 할 수 있습니다. 3. 특정 IP 주소가 컬렉션에 이미 있는지 확인하는 기능. 4. IP로 서버 개체에 대한 참조를 가져 오는 기능. 편집 : 오 예, 강력하게 벡터처럼 타이핑하고 싶습니다 ... 절대적으로 필요한 것은 아니지만 좋을 것 같습니다.
# 3 또는 # 4를 수행하는 방법에 대해 잘 모르는 것을 제외하고는 연관 배열이 내게 필요한 것을 줄 것 같습니다.
public var Servers:Object = new Object();
public function AddServer(server:Server):void
{
//TODO:need to check if it exists first and throw an error if so
//(it's the caller's responsibility to call DoesServerExist first)
Servers[server.IP] = server;
}
public function RemoveServer(IP:string):void
{
//is it OK to attempt to delete an item if it doesn't already exist?
//do I need to check if it exists before doing delete?
delete Servers[IP];
}
public function DoesServerExist(IP:string):bool
{
//Do I loop through all the elements testing it's IP property?
//Or can I just do something like this?
if(Servers[IP] == null)
{
return false;
}
else
{
return true;
}
}
public function GetServer(IP:string):Server
{
return Servers[IP];//what is returned if this IP doesn't exist?
}
개인적으로 IP 주소를 int로 저장하고 싶습니다 ... 32 비트가 유효한 ip입니다 ... "123.456.789.876"은 ... 디자인과 관련하여 개인/보호 된 변수를 만들 것입니다 ... 그리고 관례에 따라 UpperCamelCase는 as3의 클래스를 위해 예약되어 있습니다 ... 완전히 주관적입니다.하지만 일부 공동 작업을 시작할 계획이라면 익숙해지기를 원할 것입니다. – back2dos
한번보세요. 실제로 haxe.org (haxe.org) ... 제네릭을 지원합니다 ... 해시 ...과 별개로 훌륭한 젊고 유망한 언어입니다. –
back2dos