C Sharp/Переменные: различия между версиями

50 байт добавлено ,  7 лет назад
({{BookCat}})
== Типы, переменные и значения ==
 
C# является строго типизированным языком. Каждая переменная и константа имеет тип, как и каждое выражение, результатом вычисления которого является значение. Каждая сигнатура метода задает тип для каждого входного параметра и для возвращаемого значения. Библиотека классов платформы .NET Framework определяет набор встроенных числовых типов, а также более сложных типов, представляющих широкое разнообразие логических конструкций, например, файловую систему, сетевые подключения, коллекции и массивы объектов и даты. Типичная программа C# использует типы из библиотеки классов, а также пользовательские типы, моделирующие принципы, относящиеся к проблемной области программы.
 
К сведениям, хранимым в типе, может относиться следующее:
• Место для хранения, необходимое для переменной типа.
 
• Максимальное и минимальное значения, которые могут быть представлены.
* Место для хранения, необходимое для переменной типа.
• Содержащиеся члены (методы, поля, события и т. д.).
* Максимальное и минимальное значения, которые могут быть представлены.
• Базовый тип, которому он наследует.
* Содержащиеся члены (методы, поля, события и т. д.).
• Расположение, в котором будет выделена память для переменных во время выполнения.
* Базовый тип, которому он наследует.
• Разрешенные виды операций.
* Расположение, в котором будет выделена память для переменных во время выполнения.
* Разрешенные виды операций.
 
Компилятор использует сведения о типе, чтобы убедиться, что все операции, выполняемые в коде, являются типобезопасными. Например, при объявлении переменной типа int, компилятор позволяет использовать в дополнение переменную и операции вычитания. При попытке выполнить эти же операции в переменной типа bool, компилятор вызовет ошибку, как показано в следующем примере:
 
<source lang="csharp">
int a = 5;
int b = a + 2; //OK
// Error. Operator '+' cannot be applied to operands of type 'int' and 'bool'.
int c = a + test;
</source>
 
;Примечание
:Разработчикам, работающим с C и C++, следует обратить внимание на то, что в C# bool нельзя преобразовать в int.
 
Разработчикам, работающим с C и C++, следует обратить внимание на то, что в C# bool нельзя преобразовать в int.
 
Компилятор внедряет сведения о типе в исполняемый файл в качестве метаданных. Среда CLR использует эти метаданные во время выполнения для дальнейшего обеспечения безопасности типа при выделении и освобождении памяти.
Задание типов в объявлениях переменных
При объявлении переменной или константы в программе необходимо либо задать ее тип, либо использовать ключевое слово var, чтобы дать возможность компилятору определить его. В следующем примере показаны некоторые объявления переменных, использующие встроенные числовые типы и сложные пользовательские типы:
 
<source lang="csharp">
// Declaration only:
float temperature;
where item <= limit
select item;
</source>
 
 
Типы параметров метода и возвращаемые значения задаются в сигнатуре метода. В следующей сигнатуре показан метод, который требует int в качестве входного аргумента, и который возвращает строку:
 
<source lang="csharp">
public string GetName(int ID)
{
}
private string[] names = { "Spencer", "Sally", "Doug" };
</source>
 
 
 
После объявления переменной она не может быть повторно объявлена с новым типом, и ей нельзя присвоить значение, несовместимое с ее объявленным типом. Например, нельзя объявить int и затем присвоить ему логическое значение true. Однако значения могут быть преобразованы в другие типы, например, при их присвоении новым переменным или при передаче в качестве аргументов метода. Преобразование типов, которое не приводит к потере данных, автоматически выполняется компилятором. Для преобразования, которое может привести к потере данных, необходимо приведение в исходном коде.
Дополнительные сведения см. в разделе Приведение и преобразование типов (Руководство по программированию на C#).
== Встроенные типы ==
 
________________________________________
C# предоставляет стандартный набор встроенных числовых типов для представления целых чисел, значений с плавающей запятой, логических выражений, текстовых символов, десятичных значений и других типов данных. Существуют также встроенные типы string и object. Они доступны для использования в любой программе C#. Дополнительные сведения о встроенных типах см. в разделе Справочные таблицы по типам (Справочник по C#).
Пользовательские типы
Анонимный участник