Принимая мои первые шаги в C# мире от C/C++, так что немного туманно в деталях. Классы, насколько я понял, передаются по ссылке по умолчанию, но как насчет, например. Список < строка > как в:Предоставляет ли C# список <T> методу по ссылке или в качестве копии?
void DoStuff(List<string> strs)
{
//do stuff with the list of strings
}
и в других местах
List<string> sl = new List<string>();
//next fill list in a loop etc. and then do stuff with it:
DoStuff(sl);
Является С.Л. в этом случае передается по ссылке или копия сделана так, что мне нужно переопределить функцию уборщица, как
void DoStuff(ref List<string> strs), чтобы фактически действовать на sl сам, а не копией?
'class' передается по Справка. 'struct' передается по значению. – Dialecticus
Если вы ищете ссылку «C# list reference или value», вы найдете еще несколько полезных сообщений, например [this] (http://stackoverflow.com/questions/3473552/c-sharp-should-i-use- ref-to-pass-a-collection-eg-list-by-reference-to-a) и [this] (http://stackoverflow.com/questions/967402/are-arrays-or-lists-passed-by -default по ссылке-в-с). –
[this] (http://yoda.arachsys.com/csharp/parameters.html) статья должна помочь вам лучше понять эту область. – Kurubaran