【发布时间】: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 的新手,我需要帮助 :)
【问题讨论】:
如何翻译这段 Java 代码:
private List<MPoint> classes = new ArrayList<MPoint>(); // MPoint is my own class
到 C#? Java 中的 final 关键字是什么意思?在 C# 中有什么类似的东西? 我是 C# 和 Java 的新手,我需要帮助 :)
【问题讨论】:
private IList<MPoint> classes = new List<MPoint>();
IList<T>是泛型集合类List<T>实现的接口。
final 在 Java 中根据其上下文有不同的含义:
final 类似于 C# 中的 sealed
final 就像 C# 中的 readonly。C#中final的等价物在here详细讨论。
【讨论】:
private IList<MPoint> classes = new List<MPoint>();
Java List 接口类似于 .NET IList<T> 接口。
ArrayList 具体类型类似于 .NET List<T> 类型。
final 有点复杂。在 这种 情况下(字段声明 + 初始化程序),最接近的是 readonly。另一方面,在当前版本中,无法在 C# 中将局部变量标记为 final。 (题外话,final 在编译时常量的上下文中 = const。在“不能覆盖/进一步继承”的上下文中 = sealed)。
编辑:要回答您关于“最终”是什么意思的问题,它通常用于表示一种 种类 的不变性 - 不能进一步修改或覆盖某些东西。 实际上 使用该修饰符和它的 C# 类似物防止了什么样的可变性取决于上下文,如果不深入细节就很难描述。
【讨论】:
和你写的差不多。
List<MPoint> classes = new List<MPoint>();
【讨论】:
final在Java中是const在C#中
Java 中的 Final 意味着在第一次分配给 final 变量之后,您不能再更改它。我不确定 C# 中的等价物是什么。
代码和 AS-CII 说的一样,但我会这样写
private IList<MPoint> classes = new List<MPoint>();
【讨论】: