Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Объявление и присваивание переменных




Типы данных

Как и в любом языке программирования, в С# поставляется собственный набор основных типов данных, которые должны применяться для представления локальных переменных, переменных экземпляра, возвращаемых значений и входных параметров. Однако в отличие от других языков программирования, в С# эти ключевые слова представляют собой нечто большее, чем просто распознаваемые компилятором лексемы. Они, по сути, представляют собой сокращенные варианты обозначения полноценных типов из пространства имен System. В следующей таблице перечислены эти системные типы данных, отвечающие требованиям общеязыковой спецификации CLS (Common Language Specification), вместе с охватываемыми ими диапазонами значений, соответствующими ключевыми словами на С#.

Тип FCL-типы Описание Размер (в байтах) Диапазон
byte System.Byte Целое беззнаковое число   0 до 255
short System.Int16 Целые числа (маленький диапазон)   -32 768 до 32 767
int System.Int32 Целые числа   -2 147 483 648 до 2 147 483 647
long System.Int64 Целые числа (больший диапазон)   -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807
float System.Single Числа с плавающей точкой   + / - 3,4 × 10 ^ 38
double System.Double Числа двойной точности (более точные) с плавающей точкой   + / -1,7 × 10 ^ 308
decimal System.Desimal Денежный значения   28 значащих цифр
char System.Char Один символ   N/A
bool System.Bool Логический   true или false
string System.String Последовательность символов 2 на симол N/A
object System.Object Служит базовым классом для всех типов в мире.NET Позволяет сохранять любой тип в объектной переменной

Каждый из числовых типов, такой как short или int отображается на соответствующую структуру в пространстве имен System.

Объявление и присваивание переменных

Прежде чем использовать переменную, ее нужно объявить, указав ее имя и характеристики. Имя переменной называется идентификатором. Существуют правила, касающиеся идентификаторов, которые можно использовать:

· Идентификатор может содержать только буквы, цифры и символы подчеркивания.

· Идентификатор должен начинаться с буквы или символа подчеркивания.

· Идентификатор не должен быть одним из ключевых слов, которые C# резервирует для собственного использования.

C# при именовании учитывает регистр, а, следовательно, идентификаторы MyData и MYDATA, определяют различные переменные, хотя это и не является хорошим стилем программироваия.

Для именования переменных следует использовать осмысленные имена, поскольку это делает код более простым для понимания. При этом необходимо придерживаться соглашения об именовании.

При объявлении переменной для ее хранения должно быть зарезервировано место в памяти, размер которого определяется типом. Поэтому при объявлении переменной необходимо указать тип хранимых данных. В одном объявлении можно с помощью запятой указать несколько переменных, при этом все объявленные переменные будут иметь один и тот же тип. Синтаксис объявления переменных показан ниже.

DataType variableName;

// or

DataType variableName1, variableName2;

int variableName;

После объявления переменной можно присвоить значение для его дальнейшего использования в приложении с помощью оператора присваивания. Значение переменной можно изменить столько раз, сколько это необходмо. Операция присваивания «=» присваивает значение переменной.

variableName = value;

Значение правой части выражения присваивается переменной в левой части выражения. В следующем примере объявлена целочисленная переменная price, которой п рисваивается значение 10.

int price = 10;

Далее существующей целочисленной переменной price присваивается число 20.

price = 20;

Присвоить значение переменным можно при их объявлении (инициализация). В следующем примере кода показан синтаксис объявления переменной с одновременным присваиванием.

DataType variableName = value;

Тип выражения при присваивании должен соответствовать типу переменной, иначе программа не будет компилироваться. Например, код в следующем примере не будет компилироваться, потому что нельзя присвоить строковое значение целочисленной переменной.

int numberOfEmployees;

numberOfEmployees = "Hello";

При объявлении переменной, пока ей не присвоено значение, она содержит случайное значение. Такое поведение являлось источником ошибок в программах C и C++, которые создавали переменную и могли случайно использовать ее в качестве источника информации, прежде чем присвоить ей значение. C# не позволяет использовать неинициализированную переменную. Необходимо присвоить значение переменной прежде, чем использовать его, в противном случае, программа не будет компилироваться.

При объявлении переменных, можно использовать ключевое слово var вместо указания явного типа данных, таких как int или string. Когда компилятор встречает ключевое слово var, он автоматически выводит лежащий в основе тип данных на основе первоначального значения, используемого для инициализации переменной. Поэтому, при объявлении необходимо инициализировать переменную, определив ее следующим образом

var price = 20;

В примере переменная price неявно типизированная переменная. Однако, ключевое слово var не означает, что переменной price можно позже присвоить значение другого типа. Тип переменной price фиксирован, так же, как если бы явно было объявлено, что это целочисленная переменная.

Неявную типизацию можно использовать для любых типов, включая массивы, обобщенные типы и пользовательские специальные типы.

С использованием ключевого слова var связаны различные ограничения. Самое первое и важное из них состоит в том, что неявная типизация применима только для локальных переменных в контексте какого-то метода или свойства. Применять ключевое слово var для определения возвращаемых значений, параметров или данных полей специального типа не допускается.

class ThisWillNeverCompile

{

// var не может применяться для определения полей!

private var mylnt = 10;

// var не может применяться для определения

// возвращаемого значения или типа параметра!

public var MyMethod(var x, var y) { }

}

Однако, неявно типизированную локальную переменную можно возвращать вызывающему методу, при условии, что возвращаемый тип этого метода совпадает с типом, лежащим в основе определенных с помощью var данных.

static int GetAnIntValue()

{

var retVal = 9;

return retVal;

}

Локальным переменным, объявленным с помощью ключевого слова var, не допускается присваивать в качестве начального значения null. Однако присваивание значения null локальной переменной с выведенным после начального присваивания типом вполне допустимо (если переменная относится к ссылочному типу).

var myObj = null;

// Ошибка! Присваивание null в качестве начального

// значения не допускается!

 

var myObj = (int?)null;

myObj = 78;

 

var myCar = new Car();

// Все в порядке, поскольку Car

// является переменной ссылочного типа!

myCar = null;

Значение неявно типизированной локальной переменной может быть присвоено другим переменным, причем как неявно, так и явно типизированным.

var myInt2 = 0;

var anotherInt = myInt;

string myString2 = "Wake up!";

var myData = myString;

И, наконец, определять неявно типизированную локальную переменную как допускающую значение null с использованием лексемы «?» в С# нельзя.

Следует отметить, что неявная типизация локальных переменных приводит к получению строго типизированных данных. Таким образом, применение ключевого слова var в С# не приводит к созданию переменнах, которые на протяжении своего существования в программе могут хранить значения разных типов (динамическая типизация[1]). Выведение типа позволяет языку С# оставаться строго типизированным и оказывает влияние только на объявление переменных во время компиляции. После этого данные трактуются как объявленные с выведенным типом; присваивание такой переменной значения другого типа будет приводить к возникновению ошибок на этапе компиляции.

Использование ключевого слова var для объявления локальных переменных просто так особой пользы не приносит, а в действительности может даже вызвать путаницу у тех, кто будет изучать данный код, поскольку лишает возможности быстро определить тип данных и, следовательно, понять, для чего предназначена переменная. Поэтому если точно известно, что переменная должна относиться к типу int, лучше сразу объявить ее с указанием этого типа. Неявно типизированные переменные полезны, когда не известно или трудно явно установить тип выражения, которое будет присвоено переменной. Например, в технологии LINQ применяются так называемые выражения запросов (query expression), которые позволяют получать динамически создаваемые результирующие наборы на основе формата запроса. В таких выражениях неявная типизация чрезвычайно полезна, так как в некоторых случаях явное указание типа просто не возможно.

http://go.microsoft.com/fwlink/?LinkId=192890

http://go.microsoft.com/fwlink/?LinkId=192891

http://go.microsoft.com/fwlink/?LinkId=192892






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных