您可以将引用传递给传递控制行为的引用类型吗?
我注意到,当您将控件传递给构造函数时,它实际上传递了对该控件的引用,然后如果您将另一个控件分配给该控件,则它不是复制值,而是实际上复制了引用本身!为什么这不能用常规变量或至少用 ref 关键字来完成?
例如...
public class Test : Form
{
Test()
{
InitializeComponent();
}
Test_Load(object sender, EventArgs e)
{
new Test2((Control)MyTextBox).ShowDialog();
}
}
public class Test2 : Form
{
Public Control x_
Test2(Control x)
{
x_=x;
InitializeComponent();
}
//use x_ somewhere in code to actually change x
}
我不明白这适用于控件,但不适用于其他变量。现在假设我将 x 作为 int ref 传递,我无法将 ref 本身传递给 x_?在控件的情况下,我什至不必使用 ref ,这让我很困惑这是如何发生的......我知道如何通过方法和父/所有者来回传递变量,所以我的问题非常具体特殊的准指针。也许我误解了传递 Control 的行为,如果是这种情况,您将如何构造一个 int 与 Control 完全一样,以便当您将一个 int 分配给一个像 Control 这样的 int 时,它会更改原始 int,就像它更改原始 Control 一样.
这行得通。发送与发送相同。
new InputBox(((Label)sender)).ShowDialog();
Label Send;
public InputBox(Label send)
{
Send=send;
}
我希望它以同样的方式工作。发送现在与发送相同,但不完全相同。
new InputBox(((string)sender)).ShowDialog();
string Send;
public InputBox(string send)
{
Send=send;
}
我知道如何在类等之间传递变量,但我要求特别让一个字符串的行为方式与 Label 在传递时的行为方式相同。当它被传递时,它就像一个指针一样传递,因为我可以使一个变量等于该变量的同一个实例。为什么我不能使字符串等于该字符串的同一实例?