问题是:
一个类class1的构造函数class1(ref typex xxx)接收一个typex类型的参数,
怎么在class1中申明一个成员变量yyy来等于这个xxx?
也不是“等于”,是“就是”。
要求的效果是操作yyy等于操作xxx。谢谢。
一个类class1的构造函数class1(ref typex xxx)接收一个typex类型的参数,
怎么在class1中申明一个成员变量yyy来等于这个xxx?
也不是“等于”,是“就是”。
要求的效果是操作yyy等于操作xxx。谢谢。
{
class1()
{
}
class1(ref typex xxx)
{
xxx.value = "ttt";
}
static void main(string[] arg)
{
typex yyy = new typex();
class1 a = new class1( ref yyy);
}}不就行了么?yyy经过构造函数后值已变为"ttt"了,这是不是你要的效果??
当然不是:
private typex yyy;
public class(ref typex xxx)
{
yyy = xxx
}我需要的是声明一个yyy(怎么声明不知道),把xxx给yyy(怎么给不知道)。
指针就是直接赋值就行了,可这个怎么做啊。。
====================================================
对,是要相当于用指针那样,可class1的构造函数中获取typex引用后,并不是马上使用,它有自己的消息系统,它要在需要的时候来使用,那么我就要把传递过来的xxx保存到另一个地方,而不是赋值给另一个变量。
1,值类型。比如 int ,float,byte, 和所有的 struct 等等
2,引用类型。比如string 和所有的class等等
他们区别在于使用 = 号的时候会发生不同情况
a = valueA;
b = valueB;
a = b;
a = valueC;
b ?
如果a,b 是值类型b = valueB还是原来的值,如果a,b是引用类型的 b = valueC了;
关于你这个问题,你必须先分清typex是引用类型,还是值类型。
如果本来就是引用类型的,那根本就不要ref传递
如果值类型需要把引用类型转成值类型利用 Boxing 装箱.