Типы по значению и типы по ссылке. Тип struct в C# является типом по значению.
C# имеет 15 предопределенных типов (13 по значению и 2 (string и object) по ссылке).
В C# тип object является исходным типом-предком, от которого берут начало все внутренние и все определенные пользователем типы. Ссылку object можно использовать для привязки к любому объекту любого частного подтипа.
Тип string является типом по ссылке (размещается в куче). Когда одна строковая переменная присваивается другой строковой переменной, в результате получается две ссылки на одну и ту же строку в памяти. Однако если впоследствии будут сделаны изменения в одной из этих строк, это создаст совершенно новый объект string, в то время как другая строка останется неизменной.
Для ввода пути:
string filepath = “C:\\Temp\\First.cs”
Или можно воспользоваться предварительным символом «@»:
string filepath = @“C:\Temp\First.cs”;
Это позволяет включить в строковые литералы даже переводные строки:
string s = @"c:\temp\a.cs";
Когда одна строковая переменная присваивается другой строковой переменной, в результате получается две ссылки на одну и ту же строку в памяти. Однако если впоследствии будут сделаны изменения в одной из этих строк, это создаст совершенно новый объект string, в то время как другая строка останеться не изменой!
string s1 = "Строка"; string s2 = s1; Console.WriteLine("s1 = " + s1); Console.WriteLine("s2 = " + s2); s1 = "Другая строка"; Console.WriteLine("s1 теперь = " + s1); Console.WriteLine("s1 теперь = " + s1);
Возможно следующее: char[] s = { 'с', 'т', 'р', 'о', 'к', 'а'};
string myStr = new string(s); Console.WriteLine(s);
Строковые значения формально представляют собой массивы, к их отдельным элементам (символам) можно обращаться как к элементам одномерного массива (нумерация нач. с нуля):
string s = "строка"; Console.WriteLine(s[4]);
Length() – возвращает длину строки. Для копирования строк можно воспользоваться методом Copy(): s2 = string.Copy(s1);
Для нахождения позиции строки в строке применяется метод IndexOf():
int n = s.IndexOf("ока"); Console.WriteLine(n); // n = 3
C# не допускает модификацию отдельных символов существующей строки.
Для формирования новых строк на основе существующих применяется метод Substring(), выделяющий подстроку в родительской строке. Первый аргумент – позиция подстроки, второй – длина.
string s = "строка"; string s2 = s.Substring(3, s.Length-3); // "ока"