Если значение параметра изменяется следующим образом:
parameter = new SomeValue();
, то это изменение будет только , которое будет видно вызывающей стороне с помощью ref
.
Если вместо этого вы изменяете содержимое объекта , на который вызывающая сторона передала ссылку, то эту ссылку можно передать значением :
public void AppendHello(StringBuilder builder)
{
// This changes the data within the StringBuilder object that the
// builder variable refers to. It does *not* change the value of the
// builder variable itself.
builder.Append("Hello");
}
См. Мою статью о передаче параметров для получения дополнительной информации.
Обратите внимание, что если тип параметра является структурой, а не классом, то вы не будете передавать копиюссылки на объект - вы будете передавать сами фактические данные.В этой ситуации вам также необходимо использовать ref
.