Главная

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

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

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

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

ТОР 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#.

Operator type Operators
Арифметические +, -, *, /,%
Инкримент, декримент ++, --
Сравнение ==,! =, <,>, <=, <=, is
Объединение (конкатенация) строк +
Логические/битовые &, |, ^, &&,!, | |
Индексация (отсчет начинается с элемента 0) []
Приведение (сasting) (), as
Присваивание =, + =, -=, *=, =,% =, & =, | =, =, <=,>> =,?
Битовый сдвиг <<, >>
Информация о типе SizeOf, TypeOf
Конкатенация и удаление делегатов +, -
Контроль за переполнением checked, unchecked
Разименования и получения адреса *, ->, [ ], &
Условная ?:

Инкримент и декримент переменных. Если к переменной нужно добавить 1, можно использовать операцию сложения «+», как показано в следующем примере.

count = count + 1;

Однако, добавление 1 к переменной настолько распространенная операция, что C# предоставляет для этой цели собственную операцию – операцию инкремента «++». Чтобы увеличить значение переменной на 1, можно написать оператор следующего вида.

count++;

Кроме того, С# предлагает операцию декремента «--», которую можно использовать для вычитания 1 из переменной, как показано ниже.

count--;

Операции инкремента и декремента являются унарными.

Использование составных операций присваивания. Если нужно добавить 42 к значению переменной, можно объединить операции присваивания и сложения. Например, в следующем примере к переменной answer 42 добавляется. После выполнения этой операции значение ответа станет на 42 больше.

answer = answer + 42;

Однако, добавление значения к переменной настолько распространено, что C# позволяет выполнить эту задачу сокращенным образом с помощью составной операции составного присваивания «+=». Чтобы добавить 42 к переменной answer, можно написать

answer += 42;

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

Заменить на
variable = variable * number; variable *= number;
variable = variable / number; variable /= number;
variable = variable % number; variable %= number;
variable = variable + number; variable += number;
variable = variable - number; variable -= number;

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.






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

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