Namespace ConsoleHello // создаваемое новое пространство имен

{

Class Program // имя класса по умолчанию

{

static void Main(string[] args)

{

Console.WriteLine("Введите Ваше имя"); // вывод строки на экран

string name;

name = Console.ReadLine(); // ввод строки с клавиатуры

if (name == "")

Console.WriteLine("Здравствуй, мир!");

Else

Console.WriteLine("Здравствуй, " + name + "!");

} } }

Типы данных C#

С# является жестко типизированным языком. При его использовании вы должны объявлять тип каждого объекта, который создаете (напри­мер, целые числа, числа с плавающей точкой, строки, окна, кнопки, и т. д.), и компилятор поможет вам избежать ошибок, связанных с присво­ением переменным значений.

Подобно языку C++, C# подразделяет типы на два вида: встро­енные типы, которые определены в языке, и определяемые пользовате­лем типы, которые создает программист.

Все типы данных разделяются на две основные разновидности: размерные (структурные) типы (value-based) и ссылочные типы (reference-based). К структурным типам относятся все числовые типы данных (int, float и др.), а также перечисления и структуры. К ссылочным типам относятся массивы, строкииклассы.

Встроенные типы:

Для каждого втсроенного типа существует соответствующий тип в CRL (Common Language Runtime). Это означает, что каждый тип имеет два названия - полный (из CLR, который можно использовать в любом языке.NET) и сокращенный, используемый в C#. Можно использовать любое:

 

Таблица 1.1 – Имена встроенных типов

Логический тип
Имя типа Системный тип Значения Размер
bool System.Boolean true, false 8 бит
Арифметические целочисленные типы
Имя типа Системный тип Диапазон Размер
sbyte System.SByte -128 — 128 Знаковое, 8 Бит
byte System.Byte 0 — 255 Беззнаковое, 8 Бит
short System.Short -32768 —32767 Знаковое, 16 Бит
ushort System.UShort 0 — 65535 Беззнаковое, 16 Бит
int System.Int32 ≈(-2*109 —2*109) Знаковое, 32 Бит
uint System.UInt32 ≈(0 — 4*109) Беззнаковое, 32 Бит
long System.Int64 ≈(-9*1018 — 9*1018) Знаковое, 64 Бит
ulong System.UInt64 ≈(0— 18*1018) Беззнаковое, 64 Бит
         

 

  Арифметический тип с плавающей точкой
  Имя типа Системный тип Диапазон Точность
  float System.Single +1.5*10-45 - +3.4*1038 7 цифр
  double System.Double +5.0*10-324 - +1.7*10308 15-16 цифр
  Арифметический тип с фиксированной точкой
  Имя типа Системный тип Диапазон Точность
  decimal System.Decimal +1.0*10-28 - +7.9*1028 28-29 значащих цифр
  Символьные типы
  Имя типа Системный тип Диапазон Точность
  char System.Char U+0000 - U+ffff Unicode символ
string System.String Строка из символов Unicode  
  Объектный тип
  Имя типа Системный тип Примечание
  Object System.Object Прародитель всех встроенных и пользовательских типов
               

 

В языке C# сглажено различие между типом и классом. Все типы - встроенные и пользовательские - одновременно являются классами, связанными отношением наследования. Родительским, базовым классом является классObject. Все остальные типы или, точнее, классы являются его потомками, наследуя методы этого класса. У классаObject есть четыре наследуемых метода:

- bool Equals (object obj) - проверяет эквивалентность текущего объекта и объекта, переданного в качестве аргумента;

- System.Type GetType () - возвращает системный тип текущего объекта;

- string ToString () - возвращает строку, связанную с объектом. Для арифметических типов возвращается значение, преобразованное в строку;

- int GetHashCode() - служит как хэш-функция в соответствующих алгоритмах поиска по ключу при хранении данных в хэш-таблицах.

Естественно, что все встроенные типы нужным образом переопределяют методы родителя и добавляют собственные методы и свойства.

int x=11; //определение целой переменной встроенного

int v = new Int32(); //определение целой переменной встроенного типа

v = 007;

string s1 = "Agent"; //определение строковой переменной

 

Преобразования типов

Важным классом преобразований являются преобразования в строковый тип и наоборот. Преобразования в строковый тип всегда определены, поскольку, все типы являются потомкамибазового классаObject, а, следовательно, обладают методом ToString(). Метод ToString можно вызывать явно, но, если явный вызов не указан, то он будет вызываться неявно, всякий раз, когда по контексту требуется преобразование к строковому типу:

public void ToStringTest(){

string s ="Владимир Петров ";

string s1 =" Возраст: ";

int ux = 27;

s = s + s1 + ux.ToString();

WhoIsWho("s",s);

s1 =" Зарплата: ";

float dy = (float)2700.50;

s = s + s1 + dy;

WhoIsWho("s",s);

}


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: