加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 教程 > 正文

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编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读