C#:如何在函数参数中传递对象?
public void MyFunction(TextBox txtField)
{
txtField.Text = "Hi.";
}
上述内容是否有效?或?
答案 0 :(得分:10)
只要您不在另一个线程中,是的,代码示例是有效的。文本框(或其他窗口表单项)仍然是可以通过方法传递和操作的对象。
答案 1 :(得分:8)
有关详细信息传递和传递值的详细信息,请参阅"Parameter passing in C#"。
答案 2 :(得分:4)
对于任何引用类型,没关系 - 您已将引用传递给对象,但只有一个对象,因此调用者可以看到更改。
不会工作的主要时间是“结构”(值类型) - 但它们实际上不应该是可变的(即它们不应该具有可编辑的属性)。
如果需要使用结构执行此操作,则可以添加“ref” - 即。
public void MyFunction(ref MyMutableStruct whatever)
{
whatever.Value = "Hi."; // but avoid mutable structs in the first place!
}