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<T>
是泛型集合类List<T>
实现的接口。
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<T>
接口。
ArrayList
具体类型类似于 .NET List<T>
类型。
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转换为字符串数组(字符串[])