—>
C# предоставляет ряд операторов, поддерживаемых встроенными типами.C# provides a number of operators supported by the built-in types.Например арифметические операторы выполняют арифметические операции с числовыми операндами, а логические операторы выполняют логические операции с операндами bool.For example, arithmetic operators perform arithmetic operations with numeric operands and Boolean logical operators perform logical operations with the bool operands.Большинство операторов могут быть перегружены.Certain operators can be overloaded.С помощью перегрузки операторов можно указать поведение оператора для операндов определяемого пользователем типа.With operator overloading, you can specify the operator behavior for the operands of a user-defined type.
В выражении приоритет и ассоциативность операторов определяют порядок выполнения операций.In an expression, operator precedence and associativity determine the order in which the operations are performed.Порядок вычисления, определяемый приоритетом и ассоциативностью операторов, можно изменить с помощью скобок.You can use parentheses to change the order of evaluation imposed by operator precedence and associativity.
Содержание
- Приоритет операторовOperator precedence
- Ассоциативность операторовOperator associativity
- Вычисление операндаOperand evaluation
- Спецификация языка C#C# language specification
- См. такжеSee also
- Пишем цитаты, или Как соблюдать правила русского языка
- Что такое копирайт и как его применять
- Из истории знака ©
- Как установить «С» в кружочке на своё творение
- Что входит в состав копирайта
- Как создать знак копирайта
Приоритет операторовOperator precedence
В выражении с несколькими операторами операторы с более высоким приоритетом оцениваются до операторов с более низким приоритетом.In an expression with multiple operators, the operators with higher precedence are evaluated before the operators with lower precedence.В следующем примере умножение выполняется сначала, так как оно имеет более высокий приоритет, чем сложение:In the following example, the multiplication is performed first because it has higher precedence than addition:
var a = 2 + 2 * 2; Console.WriteLine(a); // output: 6
Используйте скобки, чтобы изменить порядок вычисления, накладываемый приоритетом операторов:Use parentheses to change the order of evaluation imposed by operator precedence:
var a = (2 + 2) * 2; Console.WriteLine(a); // output: 8
В следующей таблице перечислены операторы C# в порядке убывания приоритета.The following table lists the C# operators starting with the highest precedence to the lowest.Операторы в каждой строке имеют одинаковый приоритет.The operators within each row have the same precedence.
ОператорыOperators | Категория или имяCategory or name |
---|---|
x.y, x?.y, x?[y], f(x), a[i], x++, x—, new, typeof, checked, unchecked, default, nameof, delegate, sizeof, stackalloc, x->yx.y, x?.y, x?[y], f(x), a[i], x++, x—, new, typeof, checked, unchecked, default, nameof, delegate, sizeof, stackalloc, x->y | ПервичныйPrimary |
+x, -x, !x, ~x, ++x, —x, ^x, (T)x, await, &x, *x, true и false+x, -x, !x, ~x, ++x, —x, ^x, (T)x, await, &x, *x, true and false | УнарныйUnary |
x..yx..y | ДиапазонRange |
x * y, x / y, x % yx * y, x / y, x % y | МультипликативныйMultiplicative |
x + y, x – yx + y, x – y | АддитивныйAdditive |
x <> yx <> y | СдвигShift |
x y, x = y, is, asx y, x = y, is, as | Тестирование типов и относительныйRelational and type-testing |
x == y, x != yx == y, x != y | РавенствоEquality |
x & y |
Логическое И или побитовое логическое ИBoolean logical AND or bitwise logical AND |
x ^ y |
Логическое исключающее ИЛИ или побитовое логическое исключающее ИЛИBoolean logical XOR or bitwise logical XOR |
x | y |
Логическое ИЛИ или побитовое логическое ИЛИBoolean logical OR or bitwise logical OR |
x && yx && y | Условное ИConditional AND |
x || yx || y | Условное ИЛИConditional OR |
x ?? yx ?? y | Оператор объединения с NULLNull-coalescing operator |
c ? t : fc ? t : f | Условный операторConditional operator |
x = y, x += y, x -= y, x *= y, x /= y, x %= y, x &= y, x |= y, x ^= y, x <>= y, x ??= y, =>x = y, x += y, x -= y, x *= y, x /= y, x %= y, x &= y, x |= y, x ^= y, x <>= y, x ??= y, => | Назначение и объявление лямбда-выраженийAssignment and lambda declaration |
Ассоциативность операторовOperator associativity
Если операторы имеют одинаковый приоритет, порядок их выполнения определяется ассоциативностью операторов:When operators have the same precedence, associativity of the operators determines the order in which the operations are performed:
- Операторы с левой ассоциативностью вычисляются слева направо.Left-associative operators are evaluated in order from left to right.За исключением операторов присваивания и оператора объединения со значением NULL, все бинарные операторы имеют левую ассоциативность.Except for the assignment operators and the null-coalescing operators, all binary operators are left-associative.Например, выражение
a + b - c
вычисляется как(a + b) - c
.For example,a + b - c
is evaluated as(a + b) - c
. - Операторы с правой ассоциативностью вычисляются справа налево.Right-associative operators are evaluated in order from right to left.Операторы присваивания, оператор объединения со значением NULL и условный оператор
?:
имеют правую ассоциативность.The assignment operators, the null-coalescing operators, and the conditional operator?:
are right-associative.Например, выражениеx = y = z
вычисляется какx = (y = z)
.For example,x = y = z
is evaluated asx = (y = z)
.
Используйте скобки, чтобы изменить порядок вычисления, накладываемый ассоциативностью операторов:Use parentheses to change the order of evaluation imposed by operator associativity:
int a = 13 / 5 / 2; int b = 13 / (5 / 2); Console.WriteLine($"a = {a}, b = {b}"); // output: a = 1, b = 6
Вычисление операндаOperand evaluation
Не связанные с приоритетом и ассоциативностью операторов операнды в выражении вычисляются слева направо.Unrelated to operator precedence and associativity, operands in an expression are evaluated from left to right.В следующих примерах иллюстрируется порядок вычисления операторов и операндов:The following examples demonstrate the order in which operators and operands are evaluated:
ВыражениеExpression | Порядок вычисленийOrder of evaluation |
---|---|
a + b |
a, b, +a, b, + |
a + b * c |
a, b, c, *, +a, b, c, *, + |
a / b + c * d |
a, b, /, c, d, *, +a, b, /, c, d, *, + |
a / (b + c) * d |
a, b, c, +, /, d, *a, b, c, +, /, d, * |
Как правило, оцениваются все операнды операторов.Typically, all operator operands are evaluated.Однако некоторые операторы оценивают операнды условно.However, some operators evaluate operands conditionally.То есть значение крайнего левого операнда такого оператора определяет, следует ли оценивать другие операнды.That is, the value of the leftmost operand of such an operator defines if (or which) other operands should be evaluated.Эти операторы являются условными логическими операторами И (&&
) и ИЛИ (||
) , операторами объединения со значением NULL??
и ??=
, условными операторами со значением NULL ?.
и ?[]
и условным оператором ?:
.These operators are the conditional logical AND (&&
) and OR (||
) operators, the null-coalescing operators ??
and ??=
, the null-conditional operators ?.
and ?[]
, and the conditional operator ?:
.Дополнительные сведения см. в описании каждого оператора.For more information, see the description of each operator.
Спецификация языка C#C# language specification
Дополнительные сведения см. в разделе Операторы статьи Спецификация языка C#.For more information, see the Operators section of the C# language specification.
См. такжеSee also
—>
В жизни нашей есть множество интересных и непонятных вещей. Имеются такие штуки и в Интернете. Давайте раскроем одну из подобных тайн.
Среди обитателей Всемирной сети существует две точки зрения о том, что такое буква «С» в кружочке. Давайте рассмотрим обе версии:
- Первые пользователи считают, что значок «С» в кружочке – это не что иное, как выделение цитаты.
- Вторые говорят, что такую буковку используют для обозначения авторских прав на какое-либо изобретение.
Нам с вами предстоит выяснить, кто из этих спорщиков прав. Кроме того, необходимо разобраться в том, как эту самую букву заключить в кружок.
Пишем цитаты, или Как соблюдать правила русского языка
Как мы с вами уже говорили, некоторые обитатели интернета думают, что «С» в кружочке – символ, с помощью которого можно выделять цитаты. Делясь разного рода афоризмами и высказываниями известных личностей, эти люди щедро помечают скопированные тексты знаком ©. Но правильно ли такие пользователи поступают? Давайте подумаем вместе.
Для того чтобы правильно оформить цитату, надо вспомнить о правилах русской грамматики. Если вы заглянете в учебник русского языка, узнаете, что такое цитата. Цитата – это дословное изложение части какого-либо известного изречения. Здесь не допускаются изменения. Цитаты надо заключать в кавычки, а затем указывать их автора.
Выходит, что первая точка зрения о том, что такое «С» в кружочке, не верна. Перейдём ко второму утверждению.
Что такое копирайт и как его применять
Давайте посмотрим, правы ли пользователи, которые утверждают, что символ © надо использовать для обозначения прав на что-либо.
Знак © произошёл от английского слова Copyright, которое в перевод означает – «Право копирования». Такая буква стоит на страже ваших авторских прав, она отвечает за воспроизведение, изменение и использование вашего изобретения. Главное здесь, чтобы ваше творение было уникальным, а не заимствованным. А вот идею вашу могут использовать другие люди, а затем на её основе создавать что-то своё, особенное.
Вы как собственник своего произведения можете:
- Разрешить или запретить использовать его.
- Регулировать частичное или полное воспроизведение вашего продукта.
- Изменять и обновлять своё детище.
Копирайт не стоит путать с копирайтингом. Копирайтинг – это ваш уникальный текст, а копирайт – права на него.
Из истории знака ©
«С» в кружочке – знак, впервые появившийся в 1952 году. 6 сентября 1952 года была подписана Женевская конвенция, защищающая права собственников. В России данный символ действует с 2003 года.
Нужна буква «С» в кружочке для того, чтобы:
- Оповестить окружающих, что данный продукт создали именно вы.
- Установить правила использования вашего творения.
Знак © носит рекомендательный характер. Для большей защиты требуется зарегистрировать лицензию на ваше детище. Однако наличие такого знака на вашем произведении может заставить других людей не красть вашу собственность. Кроме того, копирайт защищается законом РФ об авторских правах. По этой причине вы смело можете подавать в суд на вора, посягнувшего на ваши труды.
Интересно то, что существует зеркальное отражение буквы ©. Такой символ называют авторское лево, или левой копией. Эта буковка была придумана программистом Ричардом Столлманом, который считает, что исключительных прав не должно существовать. По мнению Столлмана, авторы не вправе ограничивать права на своё творение. Абсолютно все изобретения должны находиться в свободном доступе.
Как установить «С» в кружочке на своё творение
Давайте представим себе, что у вас есть сайт, который вы хотите защитить авторским правом. Для того чтобы сделать это, надо знать:
- Из чего состоит копирайт.
- Где этот значок взять.
Разберёмся с каждым пунктом подробнее. А затем поставим на сайт символ защиты ваших прав.
Что входит в состав копирайта
Копирайт должен состоять из трёх частей:
- Та самая буковка «С» в кружочке.
- Имя владельца изобретения или название фирмы-создателя.
- Год первого появления данного продукта.
В итоге у вас должно получиться что-то вроде этого: © Ирина Петрова, 2014. Обратите внимание на то, что вместо одного года можно проставить период, в течение которого ваш проект существует. Например, так: © Ирина Петрова, 2010-2014.
Кстати, если ваш сайт ориентируется на русскоязычную аудиторию, лучше писать своё имя кириллицей. Хотите прославиться на весь мир? В этом случае пишите имя латиницей.
Как создать знак копирайта
Вставить букву © в текст можно тремя способами:
- Используя средства MS Word.
Для того чтобы вставить символ «С» в кружочке в вордовском документе, надо открыть вкладку «Вставка». Далее следует выбрать пункт меню «Символ», который находится справа. Теперь найдите среди кучи других символов ©, щёлкните по нему. После этого нажмите кнопку «Вставить», располагающуюся в самом низу открывшегося окошка. Нужный нам значок должен появиться в текстовом поле. Можете делать с ним всё, что захотите.
2. Применяя вашу клавиатуру.
Ввести букву «C» в круге с помощью клавиатуры тоже не сложно. Для этого держите нажатую клавишу Alt и вводите цифры 0169. Обратите внимание! Цифры надо брать с правой части клавиатуры, а не с верхней!
3. Применяя возможности системы Windows.
Нажмите кнопку «Пуск» на своём компьютере, затем откройте вкладку «Все программы». Следующим пунктом, который вы должны выбрать, станет «Стандартные». Теперь пункт «Служебные», а потом – «Таблица символов». Далее выберите нужный значок, нажмите «Выбрать», а затем «Копировать». Окошко с символами можно закрыть, а потом вставить вашу букву в текстовый документ.
4. С помощью специальных интернет-ресурсов.
Хотите найти символ © во всемирной сети? В данном случае надо использовать любой из существующих поисковиков. В поисковую строку введите фразы:
- Таблица спецсимволов.
- Специальные символы + название какой-нибудь известной социальной сети.
Можно также воспользоваться следующими сайтами:
- Сервис vkontakte.doguran.ru/bukvy-v-kruzhochkah.php позволяет заключать любую цифру или латинскую букву в кружок. Для этого введите любой текст в окно на странице, а затем нажмите Enter. В жёлтой строке над окном появится результат ваших действий, который можно скопировать.
- Набор разнообразных символов вам может предложить ресурс Unicode-Table.com.
Есть множество других специальных символов. Например, ® — товарный знак, а ТМ – торговая марка. Вы можете изучить их и использовать для собственных нужд.
- https://docs.microsoft.com/ru-ru/dotnet/csharp/language-reference/operators/
- https://fb.ru/article/147002/chto-znachit-simvol-s-v-krujochke-pogovorim-ob-avtorskih-pravah-i-ne-tolko