Angular2 материал диалогового окна самостоятельно закрыть

Для любопытных умов и для завершения разговора: Да, String является ссылочным типом:

unsafe
{
     string a = "Test";
     string b = a;
     fixed (char* p = a)
     {
          p[0] = 'B';
     }
     Console.WriteLine(a); // output: "Best"
     Console.WriteLine(b); // output: "Best"
}

Но обратите внимание, что это изменение работает только в небезопасном блоке! потому что строки неизменяемы (из MSDN):

Содержимое строкового объекта не может быть изменено после создания объекта, хотя синтаксис делает его таким, как будто вы можете это сделать. Например, когда вы пишете этот код, компилятор фактически создает новый строковый объект для хранения новой последовательности символов, а новый объект присваивается b. Строка «h» затем имеет право на сбор мусора.

string b = "h";  
b += "ello";  

И имейте в виду, что:

Хотя строка является ссылочным типом, операторы равенства (== и !=) определены для сравнения значений строковых объектов, а не ссылок.

23
задан Lahiru Chandima 24 June 2017 в 10:17
поделиться