- C/C++与C#中的值类型和引用类型
/* C/C++ code */
int i=0; //声明值类型变量i,值为0
int &i_ref=i; //声明引用类型变量i_ref,是i的引用,与i等价,可作为引用传参int *i_ptr=&i; //声明指针类型变量i_ptr,指向
int *i_ptr2=&i_ref; //与上面表达式等价
/* C# code */
int i=0;
object i_ref=i; //C#不能直接声明值类型的引用,需要通过装箱完成;//需要调用函数,并按引用传参时,需要将函数值类型形参添加ref/out关键字//为"ref/out int i"或声明引用类型形参"object i_ref"//(若加上in关键字传参则在函数内部只读不可修改,否则编译器会报错)unsafe
{int *i_ptr = &i; //声明int*指针时需要加上unsafe关键字,要将i_prt作为参数传递,//在函数声明时也要在访问限定符public后加上unsafe限定符//int &i_ref = i; //Error,未定义
}