ArrayList:帮助将Java转换为C#

6
我该如何翻译这段Java代码:
private List<MPoint> classes = new ArrayList<MPoint>(); // MPoint is my own class

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

4个回答

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

IList<T>是由泛型集合类List<T>实现的接口。

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

  • 对于类或方法中的final,相当于C#中的sealed
  • 对于变量中的final,相当于C#中的readonly

C#中的final的等效内容在此处详细讨论。


C#中的List与Java中的ArrayList的实现有多相似?支持接口的是什么? - Snekse
@Snekse - 这是一个不同的问题,如果你真的需要答案,你可以在网站上提问。 - Steve Townsend

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

Java的List接口类似于.NET IList<T>接口。 ArrayList具体类型类似于.NET List<T>类型。 final有点复杂。在这种情况下(字段声明+初始化程序),最接近的是readonly。另一方面,截至目前版本,在C#中没有办法将局部变量标记为final。(离题,编译时常量上下文中的final=const。在“不能进一步覆盖/继承”的上下文中的final=sealed)。

编辑:回答你关于“final”是什么意思的问题,通常用于表示一种不可变性 - 即某些内容不能被进一步修改或覆盖。该修饰符及其在C#中的类似物实际上防止哪种可变性取决于上下文,并且很难在不涉及具体情况的情况下进行描述。


1

这与你所写的类似。

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

在Java中的final相当于C#中的const - Draco Ater

0

在Java中,final表示在第一次对final变量进行赋值后,您将无法再更改它。我不确定在C#中的等效表示。

代码与AS-CII所说的相同,但我会这样写

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接