Java与C#开发上的一些差异与转换技巧
发布时间:2021-12-15 11:24:41 所属栏目:教程 来源:互联网
导读:Java和C#访问修饰符的差异性与转换: 在C#中,我们通常会使用到如下几种访问修饰符: public 访问不受限制。 protected 访问仅限于包含类或从包含类派生的类型。 internal 访问仅限于当前程序集。 protected internal 访问仅限于当前程序集或从包含类派生的类
Java和C#访问修饰符的差异性与转换: 在C#中,我们通常会使用到如下几种访问修饰符: public 访问不受限制。 protected 访问仅限于包含类或从包含类派生的类型。 internal 访问仅限于当前程序集。 protected internal 访问仅限于当前程序集或从包含类派生的类型。 private 访问仅限于包含类型。 而在Java里,则仅有以下几种可供调配: public 同C#一致 protected 同C#一致 private 同C#一致 internal 在Java中无等价存在(在Java中,如果不为函数或类增加任何修饰符,则意味着仅限当前包中所有类访问,同internal作用有近似处,但范围没有internal大。而在C#中,不用任何范围修饰符时,默认的则是protected,不能在类外被访问) 另外C#的Type,基本等价于Java的Class,小弟在LGame的C#版中也提供有一些转化工具(此类工具都在命名空间Org.Loon.Framework.Xna.Java下)。 Java和C#中this关键字的差异性与转换: Java同C#的this关键字基础作用一致,都是引用当前类的当前实例,但细节使用处有些差异。 比如在Java中,我们想利用this调用一个已有的构造函数,使用样式如下: public test{ this(0,0); } public test(int x,int y){ } 而在C#里,则需要如下的使用方式: public test : this(0,0){ } public test(int x,int y){ } 而从派生类中访问基类的成员,也就是调用父类的方法,则有如下分别。 Java中 public test(){ super(0,0); } C#中 public test():base(0,0){ } Java和C#数组的差异性与转换: Java与C#数组的差异,主要体现在多维数组的定义方式上(一维毫无差异)。 比如我们在Java中定义一个3x3的二维数组,需要如下设定。 int[][] test = new int[3][3]; 读取方式则为如下: int v = test[0][0] 而同样的设定,C#中则必须写成 int[,] test = new int[3,3]; 读取方式就要顺应格式,变成这样(附带一提,小弟在LGame的C#版里提供有仿写Java数组的方式): int v = test[0,0]; 另外,C#数组设定上比较严谨,没有Java那么随意。 比如Java中构建如下样式数组,不会有任何问题: String test[] = new String[3]; 而在C#中则必须为如下样式: string[] test = new string[3]; 假如将[]写在变量名而非变量类型后,C#是不认的,连编译都过不去。 ![]() (编辑:PHP编程网 - 黄冈站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |