C#. Помогите, пожалуйста, словами код проговорить
void SomeMemberFunc (string path, object res){
//res belongs to some user defined data type, let's say UDDT
var currPath = res;
for (int i = 1; i < path.Length; i++){
var a = new UDDT
{
Args = new List<UDDT>(1),
...
};
currPath.Args.Add(a);
currPath = a;
}
}
Вот не очень очевидно следующее:
1) var currPath = res; Это глубокое копирование, или просто ссылку сделали на область памяти?
2) currPath.Args.Add(a); - здесь добавили в массив переменной длины элемент в конец. Так?
3) currPath = a; - вот здесь у меня два варианта. Первый - currPath после этой строки получила копию вновь только что созданного объекта UDDT. Второй - currPath после этой строки получила ссылку на последний добавленный в массив элемент.
Как верно?
1) копирование ссылки 2) зависит от того, что это за Args, если это List, то да (но List это обвъертка над массивом) 3) тоже копировании ссылки
Обсуждают сегодня