2011-03-17 117 views
1

的沒有人知道,它包含與典型的Java類型的相同的功能的類.NET程序集的:.NET實現標準Java類

例如,包含以下的.NET實現(優選C#) java類包含的相同方法。

的java.util.HashMap

java.util.LinkedList中

等等

我知道的Java集合和.NET集合之間有根本區別,如去除能力枚舉期間的元素,但這並不意味着大多數函數不能在.net中實現。

在此先感謝。

+0

您是否正在尋找完全相同的API或.Net框架中的同等類? – Nate 2011-03-17 05:57:17

回答

2

如果您正在尋找與Java兼容的API接口,您可能需要查看IKVM

+0

謝謝,Nate。我剛剛下載了它。但爲什麼它不完全一樣? – 2011-03-17 05:58:04

+0

這是JVM在.Net下運行Java代碼的一個實現......與具有與其Java計數器部分相同的API的C#類相反。 – Nate 2011-03-17 06:00:00

+0

@Nate:我需要運行JVM實現嗎?或者我可以只使用我需要從我的C#項目的類(例如,java.util.ArrayList)?你知道嗎? – 2011-03-17 06:04:54

1

System.Collections.GenericSystem.Collections持有雖然有與仿製藥,如Dictionary<TKey, TValue>這取決於你的意圖可能是更好的選擇,你正在尋找,LinkedListHashTable respecitively類型。

+0

感謝您的回覆。這些類是否支持.remove()(甚至在foreach循環中)。movenext()等,就像在Java代碼中一樣? – 2011-03-17 05:57:09

+0

@Eugenio De Hoyos這可以是特定的實現,尤其是在枚舉時嘗試修改集合,但如果您查看爲特定實現鏈接的MSDN信息,您當然可以找到合適的集合。 – 2011-03-17 05:59:15

+0

@ Quintin:再次感謝。我想保留相同的java語法和命名約定,以避免重寫代碼。 – 2011-03-17 06:06:37

0

您是否在尋找恰恰與相同的方法?

我的意思是,HashMap基本上一樣Dictionary<TKey, TValue>,而LinkedList基本上一樣LinkedList<T>。所以就是這樣。

我不知道任何人做出確切的克隆只是因爲它不清楚它的價值是什麼。

+0

是的,我想要克隆,至少在表面上:確切名稱和等效功能。它的價值在於簡化java到.net的遷移,只需很少的代碼重寫。 – 2011-03-17 06:03:09

+0

感謝您的回答。看起來IKVM確實有許多Java類的確切克隆(在某種程度上)。 – 2011-03-17 06:18:01

+0

@Eugenio:雖然我很高興你找到了一些有用的東西,但我不得不承認我對你的實際目標有些困惑。你說你正在將Java代碼移植到C#中,但它聽起來像只是希望C#代碼基本上與原始Java代碼幾乎相同。你爲什麼要改變?不是我真的需要知道;我只是好奇。 – 2011-03-17 06:53:49

1

看看.NET中的System.CollectionsSystem.Collections.Generic命名空間,它們包含主集合類。

另一個您可能想要查看的有用工具是IKVM.NET。該框架允許您使用.NET中的Java API類,並提供了一些在Java和.NET之間進行互操作的機制。

+0

我想IKVM會和我一起工作。謝謝! – 2011-03-17 06:19:34