WEB开发网
开发学院软件开发C语言 C# Tips 阅读

C# Tips

 2009-05-07 08:26:46 来源:WEB开发网   
核心提示:1.值类型和引用类型对于C#的变量来说,有两种类型,C# Tips,值类型(Value Type)和引用类型(Reverence Type),两者不同点: 值类型继承自ValueType 如下图: 两者存储方式不同: 值类型变量存储在栈当中, 在这种情况下,方法内部对于形参的引用指向的成员数据改变将反映到实参,引

1.值类型和引用类型

对于C#的变量来说,有两种类型,值类型(Value Type)和引用类型(Reverence Type)。两者不同点:

值类型继承自ValueType

如下图:

C# Tips

两者存储方式不同:

值类型变量存储在栈当中。引用类型内存数据结构表示分有两部分构成,一部分引用,存储在在栈中, 一部为实际变量成员,存储在在堆中。

如图:

C# Tips

图片看不清楚?请点击这里查看原图(大图)。

注意:以上情况是指值类型和引用类型不是作为引用类型的成员,如果作为引用类型变量成员,值类型的数据和引用类型的引用都存储在栈中。

2.方法的参数修饰符 ref ,out ,params:

默认情况下,对于值类型参数的传递,其形参(Formal parameter)是实参(Formal parameter)的拷贝。在方法中对于形参所作的任何更改不会影响到实参。 对于引用类型的参数的传递,其形参(Formal parameter)是实参(Formal parameter)的部分拷贝(shallow clone),通常也叫浅拷贝。 形参只拷贝了的引用部分(即:在栈中存储的部分),这个引用同样指向实参的在堆(Heap)中的对象数据。 在这种情况下,方法内部对于形参的引用指向的成员数据改变将反映到实参,而对于形参的引用本身的更改不会影响到实参。

1 2 3  下一页

Tags:Tips

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接