一、
类型A的引用变量 a1=类型A来构造
类型A的引用变量 a2=类型A来构造二、
类型A的引用变量 a1=类型A来构造
类型A的引用变量 a2=a1先理解上面的,你的问题就理解了,不要一味的被面象对象所迷惑
类型A的引用变量 a1=类型A来构造
类型A的引用变量 a2=类型A来构造二、
类型A的引用变量 a1=类型A来构造
类型A的引用变量 a2=a1先理解上面的,你的问题就理解了,不要一味的被面象对象所迷惑
类型A的引用变量 a1=类型A来构造
类型A的引用变量 a2=类型A来构造
a1和a2指向不同的类型A的实例对象
二、
类型A的引用变量 a1=类型A来构造
类型A的引用变量 a2=a1
a1和a2指向同一个类型A的实例对象
这怎么理解如何使用B构造C
如果你是说
C = B;这样直接传引用的构造,那么显然它们是一个对象。如果你是拷贝,比如
C = new XXX();
C.xxx = B.xxx
C.yyy = B.yyy
这样,那么两个就不是一个对象。你可以做一个试验
如果object.ReferenceEquals(obja, objb);返回true的话,那么obja 和 objb 就是一个对象。
首先:
有一个数据类: Data, 操作类 Operate, 另一个操作类SubOperate;class Data
{
string str;
}
class Operate
{
Data _data;
SubOperate _subOp;
public Operate(Data data)
{
_data = data;
_subOp = new SubOperate (_data);
}
}class SubOperate
{
Data _data;
public SubOperate(Data data)
{
_data = data;
}}
问题是:我在Operate中去改变_data值,SubOperate里面的_data会改变吗?
首先:
有一个数据类: Data, 操作类 Operate, 另一个操作类SubOperate;class Data
{
string str;
}
class Operate
{
Data _data;
SubOperate _subOp;
public Operate(Data data)
{
_data = data;
_subOp = new SubOperate (_data);
}
}class SubOperate
{
Data _data;
public SubOperate(Data data)
{
_data = data;
}}
问题是:我在Operate中去改变_data值,SubOperate里面的_data会改变吗?
public partial class Form1 : Form
{
class SubData
{
public string _subdata = "init";
} class Data
{
public string _data = "init";
public SubData _subdata; public Data()
{
_subdata = new SubData();
}
} class Operate
{
public Data _data;
public SubOperate _subOp; public Operate(Data data)
{
_data = data;
_subOp = new SubOperate(_data);
}
} class SubOperate
{
public Data _data;
public SubSubOperate _subsubop; public SubOperate(Data data)
{
_data = data;
_subsubop = new SubSubOperate(_data._subdata);
}
} class SubSubOperate
{
public SubData _subdata;
public SubSubOperate(SubData data)
{
_subdata = data;
}
} public Form1()
{
InitializeComponent();
} Data data;
Operate op;
private void Form1_Load(object sender, EventArgs e)
{
data = new Data();
op = new Operate(data);
} private void button1_Click(object sender, EventArgs e)
{
// 2.第二点击这个按钮
data._subdata._subdata = "awdaw";
} private void button2_Click(object sender, EventArgs e)
{
// 1.首先点击这个按钮 textbox 出现 "init"
// 3.再次点击这个按钮 textbox 依旧是 init;
textBox1.Text = op._subOp._subsubop._subdata._subdata;
}