2011-12-25 15 views
1

JavaからC#にいくつかのコードを翻訳する必要があります。JavaからC#:HashMap、Map、Queue

private Map[] M = new HashMap[2]; 
private Queue[] q = new LinkedList[2]; 

だから、私は私が代わりにHashMapの辞書を使用する必要があります知っているが、私は.NETのジェネリックを扱ういくつかの問題があります。何か案は?ここで

は、私はinitメソッドに持っているものです:

Stateは、カスタムクラスである
M[0] = new HashMap<State, State>(); 
M[1] = new HashMap<State, State>(); 
q[0] = new LinkedList<State>(); 
q[1] = new LinkedList<State>(); 

次のコードは動作しません:Javaで、Queueは、そのクラスLinkedList<T>実装インタフェースであるため、

private Queue<State>[] q = new LinkedList<State>[2]; 
+0

? – Oded

+0

@Oded Visual Studio 2010に付属のC#4.0を使用しています –

+1

これらのコレクションにはどのような種類が含まれていますか? – Oded

答えて

2

あなたのコードがコンパイルされていません。 LinkedList がキューであるため、代入演算子が渡されます。

In C#Queue<T>およびLinkedList<T>はどちらもクラスであり、どちらも他のクラスから派生していません。最終結果は、あなたがそれ

Queue<State>[] q = new Queue<State>[2]; 

作ることができるということであり、それはおそらくあなたがどんな問題を引き起こすつもりはない、後でJavaで戻っLinkedListsや他のすごみにそれらのキューをキャストしようとしていないことを提供し、すべてのJavaキューメソッドをC#キューメソッドにマップすることができます。

もっと読書:あなたが使用する必要がないのC#のバージョンは何

http://docs.oracle.com/javase/6/docs/api/java/util/Queue.html

http://docs.oracle.com/javase/6/docs/api/java/util/LinkedList.html

http://msdn.microsoft.com/en-us/library/7977ey2c.aspx

http://msdn.microsoft.com/en-us/library/he2s3bh7.aspx

関連する問題