1. C#的变量分为两种,一种是值类型(如int),一种是引用类型(如我们自定义的所有的class)。简单的说,值类型自身就存放有值,如int i = 10,你可以理解成i就是实实在在的10;而引用类型
关于向方法中传递参数的问题
精选 转载,MyClass obj = new Class(),obj--(保存在栈中)本身并不存放new Class()--(保存在堆中),他只是 指向 new Class() 。
2. C#中的方法,会接受参数,对接受到的参数,C#也会有两种处理方法。一种是“值传递”(我们通常使用的就是这种),另一种是“引用传递” ,其特征就是关键字ref或out,如void MyMethod
(ref int para)。所谓值传递,就是给方法传递一个变量的“副本”,所以变量本身不会受到方法的影响;而引用传递,就是将变量本身传递给函数(不够严谨,但可以这样理解),所以,变量会受
到函数的影响。
所以这里就有2*2=4种组合:
值类型的值传递 将值类型(如int i)的副本传递给方法
值类型的引用传递 将值类型(如int i)本身传递给方法
引用类型的值传递 将引用(如MyClass obj)的副本(而不是该引用所指向的内容new MyClass())传递给方法
引用类型的引用传递 将引用本身(如MyClass obj)传递给方法
下一篇:如何解决窗体假死
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
linux驱动中如何向模块传递参数方法
type 表示参数的数据类型,是下列之一:byte, short, ushort, int, uint, long, ulong, charp,
linux #include #define -
关于项目中参数传递的问题
问了些人,得出结论:师傅的话是正确的。好好改代码去了。
数据 自动生成 多模块 数据交互 ide