Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю - Страница 63
- Предыдущая
- 63/642
- Следующая
// Здесь определен класс StringBuilder:using System.Text;Уникальность класса
StringBuilderStringBuildernewStringBuilderstatic void FunWithStringBuilder(){ Console.WriteLine("=> Using the StringBuilder:"); StringBuilder sb = new StringBuilder("**** Fantastic Games ****"); sb.Append("\n"); sb.AppendLine("Half Life"); sb.AppendLine("Morrowind"); sb.AppendLine("Deus Ex" + "2"); sb.AppendLine("System Shock"); Console.WriteLine(sb.ToString()); sb.Replace("2", " Invisible War"); Console.WriteLine(sb.ToString()); Console.WriteLine("sb has {0} chars.", sb.Length); Console.WriteLine();}Здесь создается объект
StringBuilder"**** Fantastic Games ****"StringBuilder// Создать экземпляр StringBuilder с исходным размером в 256 символов.StringBuilder sb = new StringBuilder("**** Fantastic Games ****", 256);При добавлении большего количества символов, чем в указанном лимите, объект
StringBuilderСужающие и расширяющие преобразования типов данных
Теперь, когда вы понимаете, как работать с внутренними типами данных С#, давайте рассмотрим связанную тему преобразования типов данных. Создайте новый проект консольного приложения по имени
TypeConversionsusing System;Console.WriteLine("***** Fun with type conversions *****");// Сложить две переменные типа short и вывести результат.short numb1 = 9, numb2 = 10;Console.WriteLine("{0} + {1} = {2}", numb1, numb2, Add(numb1, numb2));Console.ReadLine();static int Add(int x, int y){ return x + y;}Легко заметить, что метод
Add()intshortПричина, по которой компилятор считает такой код синтаксически корректным, связана с тем, что потеря данных в нем невозможна. Из-за того, что максимальное значение для типа
shortintshortintНа заметку! Разрешенные расширяющие и сужающие (обсуждаются далее) преобразования, поддерживаемые для каждого типа данных С#, описаны в разделе "Type Conversion Tables in .NET" ("Таблицы преобразования типов в .NET") документации по .NET Core.
Несмотря на то что неявное расширение типов благоприятствовало в предыдущем примере, в других ситуациях оно может стать источником ошибок на этапе компиляции. Например, пусть для переменных
numb1numb2shortAdd()shortstatic void Main(string[] args){ Console.WriteLine("***** Fun with type conversions *****"); <b>// Следующий код вызовет ошибку на этапе компиляции!</b> short numb1 = 30000, numb2 = 30000; short answer = Add(numb1, numb2); Console.WriteLine("{0} + {1} = {2}", numb1, numb2, answer); Console.ReadLine();}В данном случае компилятор сообщит об ошибке:
- Предыдущая
- 63/642
- Следующая
