ArrayList:帮助从 Java 转换为 C#

Posted

技术标签:

【中文标题】ArrayList:帮助从 Java 转换为 C#【英文标题】:ArrayList: help to translate from Java to C# 【发布时间】:2011-05-13 02:44:11 【问题描述】:

如何翻译这段 Java 代码:

private List<MPoint> classes = new ArrayList<MPoint>(); // MPoint is my own class

到 C#? Java 中的 final 关键字是什么意思?在 C# 中有什么类似的东西? 我是 C# 和 Java 的新手,我需要帮助 :)

【问题讨论】:

【参考方案1】:
private IList<MPoint> classes = new List<MPoint>();

IList&lt;T&gt;是泛型集合类List&lt;T&gt;实现的接口。

final 在 Java 中根据其上下文有不同的含义:

类或方法上的 final 类似于 C# 中的 sealed 变量上的 final 就像 C# 中的 readonly

C#中final的等价物在here详细讨论。

【讨论】:

但是 C# List 的实现与 Java ArrayList 的实现有多相似?是什么支持界面? @Snekse - 这是一个不同的问题,如果你真的需要答案,你可以在网站上提问【参考方案2】:
private IList<MPoint> classes = new List<MPoint>(); 

Java List 接口类似于 .NET IList&lt;T&gt; 接口。 ArrayList 具体类型类似于 .NET List&lt;T&gt; 类型。

final 有点复杂。在 这种 情况下(字段声明 + 初始化程序),最接近的是 readonly。另一方面,在当前版本中,无法在 C# 中将局部变量标记为 final。 (题外话,final 在编译时常量的上下文中 = const。在“不能覆盖/进一步继承”的上下文中 = sealed)。

编辑:要回答您关于“最终”是什么意思的问题,它通常用于表示一种 种类 的不变性 - 不能进一步修改或覆盖某些东西。 实际上 使用该修饰符和它的 C# 类似物防止了什么样的可变性取决于上下文,如果不深入细节就很难描述。

【讨论】:

【参考方案3】:

和你写的差不多。

List<MPoint> classes = new List<MPoint>();

【讨论】:

final在Java中是const在C#中【参考方案4】:

Java 中的 Final 意味着在第一次分配给 final 变量之后,您不能再更改它。我不确定 C# 中的等价物是什么。

代码和 AS-CII 说的一样,但我会这样写

private IList<MPoint> classes = new List<MPoint>();

【讨论】:

以上是关于ArrayList:帮助从 Java 转换为 C#的主要内容,如果未能解决你的问题,请参考以下文章

如何在c#中将ArrayList转换为字符串数组(字符串[])

需要帮助将字符串从 c++ 转换为 c# 格式

java.util.HashMap 不能转换为 java.util.ArrayList

将BasicDBList转换为Java Arraylist

java.util.ArrayList 不能强制转换为

Java转换Arraylist 漂浮[]