黑马程序员技术交流社区
标题:
C#引用
[打印本页]
作者:
杨本国
时间:
2011-11-30 20:34
标题:
C#引用
C#使用引用替代指针,那么C#的引用和C++的引用一样吗?
作者:
王伟
时间:
2011-11-30 20:36
不完全,基本的思想是一样的,但是一个重要的区别是C#的引用可以是null。因此你不能确认C#的引用一定会是一个有效的对象。如果试图使用一个值为null的引用,一个NullReferenceException 异常将被抛出。
作者:
王硕
时间:
2011-11-30 20:42
我举个例子:
例如,看一看以下的方法:
void displayStringLength( string s ) {
Console.WriteLine( “String is length {0}”, s.Length ); }
如果这样调用它,这种方法将产生一个NullReferenceException 异常:
string s = null;
displayStringLength( s );
当然有些情况你认为产生这样一个异常是完全可以接受的结果,但是在这个例子里最好按下面的代码改写一下:
void displayStringLength( string s ) {
if( s == null )
Console.WriteLine(“String is null”);
else
Console.WriteLine(“String is length {0}”, s.Length );
}
作者:
杨楠
时间:
2011-11-30 21:21
完了。。。谁知到你们都这么牛。。。
作者:
董志
时间:
2011-12-2 13:42
C#语言中的引用指的是引用类型,就是说除了普通值类型之外的都是引用类型,引用类型声明在栈上,而初始化在堆上,栈上只存堆上变量的地址。
C++中所说的引用,是变量之间的关系,可以引用值类型,也可以引用类类型,也是存在栈上,里面存引用的那个变量的地址。
不知道这么说准确不,希望高手指点!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2