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#是不认的,连编译都过不去。
Java与C#开发上的一些差异与转换方法
内容版权声明:除非注明,否则皆为本站原创文章。