C#:如何在函数参数中传递对象?

时间:2008-11-09 18:25:57

标签: c#

C#:如何在函数参数中传递对象?

public void MyFunction(TextBox txtField)
{
  txtField.Text = "Hi.";
}

上述内容是否有效?或?

3 个答案:

答案 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!
}