У меня есть переменная, затем добавьте эту переменную в список.Если я установил для list [0] значение NULL, он просто удаляется из списка, а переменная по-прежнему не равна нулю.
И если я устанавливаю переменную в NULL, значение в списке остается ненулевым.
var s = new String("Test".ToCharArray()); //Example of class
var list = new List<String>();
list.Add(s);
A:
s = null;
Debug.Log( list[0] ); //Test
Debug.Log( s ); //Null
B:
list[0] = null;
Debug.Log( list[0] ); //Null
Debug.Log( s ); //Test
Мой настоящий код намного сложнее с несколькими переменными и объектами, некоторые переменные содержат экземпляр одного и того же объекта(ни одна из них не является структурой), у каждого есть список со всеми объектами.
Выполнение 'list [0] = null' освобождает только 0-е место в этом списке вместо того, чтобы сделать этот объект нулевым, и я хочуобъект также должен быть установлен в null.
Я ожидал, что и A, и B сделают оба из них нулевыми.Может кто-нибудь объяснить, почему он так себя не ведет, и как заставить его так себя вести?
И поскольку в списке содержится ссылка на 's', почему s = null не меняет элемент списка нануль