高手请进来: object对象作为函数参数的疑问??
来源:百度知道 编辑:UC知道 时间:2024/07/07 20:22:19
有一个主函数myMain(),这个函数中定义了一个类myData的对象myObj,对象中含有一些int,double,string等数据,我将myObj赋值给一个object对象para,然后将para作为参数传给了新线程TestThread调用的方法newMethod,语句如下:
object para=myObj;
Thread TestThread = new Thread(new ParameterizedThreadStart
(newMethod) );
TestThread.Start(para);
然后我在newMethod函数中,将para还原成类myData的对象:
myData d=(myData)para;
这样,主函数myMain()中myObj的数值就被传递到子函数newMethod中了。
请问:object对象作为函数参数传入newMethod函数中,是以拷贝的形式还是以引用的方式??换句话说:在newMethod函数中改变了d的值,主函数myMain()中myObj的数值也会改变吗??
object para=myObj;
Thread TestThread = new Thread(new ParameterizedThreadStart
(newMethod) );
TestThread.Start(para);
然后我在newMethod函数中,将para还原成类myData的对象:
myData d=(myData)para;
这样,主函数myMain()中myObj的数值就被传递到子函数newMethod中了。
请问:object对象作为函数参数传入newMethod函数中,是以拷贝的形式还是以引用的方式??换句话说:在newMethod函数中改变了d的值,主函数myMain()中myObj的数值也会改变吗??
这涉及到了装箱和拆箱的问题
它是隐式装箱
一般拆箱的时候都会还原成你放进去的对象类型
这是属于引用
在newMethod函数中改变了d的值,主函数myMain()中myObj的数值也会改变吗??
值不会改变
建议你看下指针