C#: Как передать объект в параметре функции?C#: Как передать объект в параметре функции?
public void MyFunction(TextBox txtField)
{
txtField.Text = "Hi.";
}
Вышеупомянутые действительны? Или?
C#: Как передать объект в параметре функции?C#: Как передать объект в параметре функции?
public void MyFunction(TextBox txtField)
{
txtField.Text = "Hi.";
}
Вышеупомянутые действительны? Или?
До тех пор, пока вы не находитесь в другом потоке, да, образец кода действителен. Текстовое поле (или другие элементы форм Windows) все еще являются объектами, которые могут быть переданы и обработаны методами.
Yup, это будет работать. Вы на самом деле не передаете объект - вы передаете объект с ссылкой.
См. "Parameter passing in C#" для получения более подробной информации о пропуске по сравнению с передачей по значению.
Благодарим вас за исправление моего понимания использования терминов. Ваш ответ и «информационные ссылки» также высоко оценены. – 2008-11-09 18:37:07
ссылка на "Передача параметров в C#" больше не действительна. – 2013-02-23 14:52:45
Для любого ссылочного типа, это нормально - вы передали ссылку на объект, но есть только один объект, поэтому изменения видны вызывающему.
Основное время, которое не будет Работа для "structs" (value-types) - но они действительно не должны изменяться в любом случае (то есть они не должны действительно иметь редактируемые свойства).
Если необходимо сделать это с помощью структуры, можно добавить «ссылка» - т.е.
public void MyFunction(ref MyMutableStruct whatever)
{
whatever.Value = "Hi."; // but avoid mutable structs in the first place!
}
Спасибо за разъяснение его и ваш быстрый ответ. – 2008-11-09 18:35:22