ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Константы и переменные только для чтенияКонстанты и переменные только для чтения (read-only) позволяют хранить данные, которые могут хранить любые переменные в C#. Однако, при этом они могут использоваться только для хранения данных, которые не изменяются. Переменные только для чтения или константы можно использовать, например, для таких значений, как: · Количество часов в дне. · Скорость света. · Число градусов в окружности. Объявляется переменная только для чтения с помощью ключевого слова readonly: readonly DataType variableName = Value; Константы объявляются с помощью ключевого слова const: const DataType variableName = Value; Между использованием констант и переменных только для чтения существует различие. При использовании в приложении константа инициализируется только при объвлении. Таким образом определить и инициализировать значение константы можно только во время разработки и нельзя изменить ее значение во время работы приложения. Переменную только для чтения можно инициализировать при объявлении или в конструкторе класса, содержащем переменную только для чтения. Следовательно, поля с модификатором readonly могут иметь различные значения в зависимости от использованного конструктора. В следующем примере объявляется переменная только для чтения currentDateTime для хранения текущих даты и времени. В этом примере используется структура DateTime и свойство Now, которое позволяет вычислить текущую дату и время во время выполнения. Попытка использовать этот подход с константой приведет к ошибке времени компиляции. readonly string currentDateTime = DateTime.Now.ToString(); В следующем примере объявлена константа PI для расчета площади и окружности с радиусом 5. const double PI = 3.14159; int radius = 5; double area = PI * radius * radius; double circumference = 2 * PI * radius; http://go.microsoft.com/fwlink/?LinkId=192895 2. Урок 2: Использование выражений и операций в С# Значения, присваиваемые переменным, могут быть постоянными, но чаще, это значения, которые являются результатом выражений, вычисляемых во время выполнения. В уроке описано создание выражений с помощью различных операций, предоставляемых C#, приоритет операций и возможность его изменения в выражениях с помощью скобок, даны рекомендации при работе со строками. Выражения Выражения являются центральными компонентами практически каждого приложения C#, поскольку они являются фундаментальной конструкцией, используемой для вычисления и управления данными. Выражения являются комбинацией операндов и операций. Указанные термины можно определить следующим образом: · Операнды (Operands). Операнды это значения, например, числа и строки, над которыми выполняются операции. Операндами могут быть постоянные значения (литералы), переменные, свойства или результаты вызова метода. · Операции (Operators) [2]. Операции определяют действия, выполняемые над операндами. Операции существуют для всех основных математических операций в дополнение к более сложным операциям, таким как логическое сравнение или манипуляции битами данных. Во время работы приложения все выражения вычисляются в одно значение. Тип значения, которое дает выражение, зависит от типов операндов и операций, которые при этом используются. В приложениях C# не существует никаких ограничений на длину выражения, хотя на практике, она ограничивается памятью компьютера и терпением при вводе. Как правило, рекомендуется использовать достаточно короткие выражения и собирать результаты обработки выражения по частям. Это облегчает понимание того, что делает код, кроме того, делает его проще для отладки в том случае, когда приложение работает нет так, как хотелось бы. Для того, чтобы строить выражения, как простые, так и сложные, можно комбинировать основные строительные блоки операндов и операций. В самом простейшем случае, можно использовать один операнд для выражения, как показано ниже. a Такой операнд может показаться не очень полезным, но, по сути, он необходим. Например, если нужно присвоить значение переменной, потребуется выражение такого типа, на основании которого можно создавать более сложные выражения с помощью операций, как показано в следующем примере. a + 1 Операция сложения «+» может работать с различными типами данных, и результат выражения будет зависеть от типов данных операндов. Например, если операндом a является целое число, результатом выражения также будет целое число со значением на 1 больше a. Если a это переменная типа double, результатом будет double со значением на 1 больше a. Однако, во втором случае (double) компилятор C# должен будет генерировать код для преобразования постоянного целого значения 1 в постоянное double значение 1, после чего будет вычислено выражение. Правилом является то, что тип выражения совпадает с типом операндов, хотя при этом один или несколько операндов, возможно, необходимо преобразовать, чтобы обеспечить их совместимость. Например, выражение в следующем примере кода содержит два целочисленных операнда, поэтому результатом будет целое число 2 (не 2,5). 5 / 2 При преобразовании одного из операндов в тип double, C# компилятор преобразует другой операнд в double, и результатом будет значение типа double. Следовательно, выражение в следующем примере кода дает double значение 2,5. 5.0 / 2 Продолжить создание выражений с дополнительными значениями и операциями можно как показано в следующем примере. a + b - 2 Это выражение для суммы переменных a и b, из результата которого вычтено 2. Некоторые операции, такие как сложение «+», могут быть использованы для вычисления выражений, которые имеют диапазон типов. Например, выражение в следующем примере кода использует операцию сложения для объединения двух строк. "Answer: " + c.ToString(); Здесь операция сложения использует операнд, который является результатом вызова метода ToString. Этот метод преобразует значение переменной в строку независимо от ее типа. Библиотека классов.NET Framework содержит много дополнительных методов, используемых для выполнения математических и строковых операций над данными. Операции Операции и операнды объединяются вместе в выражениях. C# предоставляет широкий спектр операций, которые можно использовать для выполнения большинства фундаментальных математических и логических операций. Операции можно разделить на следующие три категории: · Унарные. Операции с одним операндом. Например, можно использовать операцию вычитания «-» как унарную. Для этого нужно поместите знак «-» непосредственно перед операндом, и он преобразует его значение так, как будто его текущее значение умножается на -1. · Бинарные. Операции с двуми операндами. Это наиболее распространенный тип операций, к которму относится, например, операция умножения «*». · Тернарные. Существует только одна тернарная операция в C#. Это операция «?:», которая используется в условных выражениях. В следующей таблице приведены сгруппированные по типу операции, которые можно использовать в C#.
Инкримент и декримент переменных. Если к переменной нужно добавить 1, можно использовать операцию сложения «+», как показано в следующем примере. count = count + 1; Однако, добавление 1 к переменной настолько распространенная операция, что C# предоставляет для этой цели собственную операцию – операцию инкремента «++». Чтобы увеличить значение переменной на 1, можно написать оператор следующего вида. count++; Кроме того, С# предлагает операцию декремента «--», которую можно использовать для вычитания 1 из переменной, как показано ниже. count--; Операции инкремента и декремента являются унарными. Использование составных операций присваивания. Если нужно добавить 42 к значению переменной, можно объединить операции присваивания и сложения. Например, в следующем примере к переменной answer 42 добавляется. После выполнения этой операции значение ответа станет на 42 больше. answer = answer + 42; Однако, добавление значения к переменной настолько распространено, что C# позволяет выполнить эту задачу сокращенным образом с помощью составной операции составного присваивания «+=». Чтобы добавить 42 к переменной answer, можно написать answer += 42; Такое сокращение можно использовать, чтобы объединить все арифметические операции с операцией присваивания, как показано в следующей таблице. Все вместе эти операции известны как составные операции присваивания.
http://go.microsoft.com/fwlink/?LinkId=192896 http://go.microsoft.com/fwlink/?LinkId=192897 Приоритет операций Выражение может содержать сложный ряд операций и операндов. Порядок, в котором операции обрабатываются и вычисляются зависит от самих операций. Не всегда существует простой лево-направленный поток выражений. Операции, которые используются для создания выражения имеют приоритет, определяющий порядок, в котором они вычисляются. Некоторые операции имеют более высокий приоритет, чем остальные, а значит, выполнятся в первую очередь. Например, в следующем примере, операция деления выполняется до операции сложения. a = b + 1 / 2; В таблице приведен приоритет операций от высокого уровня до самого низкого.
Кроме того, операции имеют конкретную ассоциативность, определяющую порядок, в котором они выполняются по отношению к другим операциям, имеющим такой же приоритет. При использовании операций с одинаковым приоритетом ассоциативность операций используется для определения порядка выполнения. Операции либо право-ассоциативны, либо лево-ассоциативны. Лево-ассоциативные операции выполняются слева направо, например, операция деления «/»: a / 5 / b Здесь, a делится на 5, а затем результат делится делится на b. Все бинарные операции лево-ассоциативны, кроме операции присваивания, которая право-ассоциативна: a = b = c Здесь значение c присваивается b, а затем значение b присваивается a (множественное присваивание). Кроме того, стоит отметить, что для многих операторов, ассоциативность не всегда важна. a + 5 + b В этом примере не существует никакой разницы для результата при обработке выражения слева направо или справа налево. Однако, поскольку операция сложения определяется как лево-ассоциативный, это может иметь значение в более сложных случаях, например, при перегрузке операций. Для управления порядком выполнения и изменения приоритета в выражениях можно использовать круглые скобки. Любая часть выражения, которая заключена в скобки обрабатывается до частей выражения, которые находятся вне скобок: a = (b + 1) / 2; Здесь (b + 1) – часть выражения, которая обрабатываются в первую очередь, и результат этой операции делится на 2, чтобы определить значение, присвоенное a. Не нашли, что искали? Воспользуйтесь поиском:
|