C# Operators – Comprehensive Guide to Operators in C#
C# Operators
Explore every category of operators in C# and learn how to apply them effectively in your code.
Operators are symbols that perform actions on one or more operands—variables, constants, or expressions. In C#, operators are grouped by the type of operation they execute, such as arithmetic, logical, bitwise, and more.
1. Basic Assignment Operator
The assignment operator (=) stores a value in a variable.
double x;
x = 50.05;
Example 1: Using the Assignment Operator
using System;
namespace OperatorDemo
{
class AssignmentOperator
{
public static void Main(string[] args)
{
int firstNumber, secondNumber;
firstNumber = 10;
Console.WriteLine("First Number = {0}", firstNumber);
secondNumber = firstNumber;
Console.WriteLine("Second Number = {0}", secondNumber);
}
}
}
Output:
First Number = 10 Second Number = 10
2. Arithmetic Operators
Arithmetic operators perform mathematical calculations.
int x = 5;
int y = 10;
int z = x + y; // z = 15
| Operator | Name | Example |
|---|---|---|
| + | Addition | 6 + 3 = 9 |
| - | Subtraction | 10 - 6 = 4 |
| * | Multiplication | 4 * 2 = 8 |
| / | Division | 10 / 5 = 2 |
| % | Modulo (remainder) | 16 % 3 = 1 |
Example 2: Arithmetic Operations
using System;
namespace OperatorDemo
{
class ArithmeticOperator
{
public static void Main(string[] args)
{
double firstNumber = 14.40, secondNumber = 4.60, result;
int num1 = 26, num2 = 4, rem;
result = firstNumber + secondNumber;
Console.WriteLine("{0} + {1} = {2}", firstNumber, secondNumber, result);
result = firstNumber - secondNumber;
Console.WriteLine("{0} - {1} = {2}", firstNumber, secondNumber, result);
result = firstNumber * secondNumber;
Console.WriteLine("{0} * {1} = {2}", firstNumber, secondNumber, result);
result = firstNumber / secondNumber;
Console.WriteLine("{0} / {1} = {2}", firstNumber, secondNumber, result);
rem = num1 % num2;
Console.WriteLine("{0} % {1} = {2}", num1, num2, rem);
}
}
}
Output:
14.4 + 4.6 = 19 14.4 - 4.6 = 9.8 14.4 * 4.6 = 66.24 14.4 / 4.6 = 3.1304347826087 26 % 4 = 2
3. Relational Operators
These operators compare two operands and return a boolean result.
| Operator | Name | Example |
|---|---|---|
| == | Equals | 6 == 4 → false |
| > | Greater than | 3 > -1 → true |
| < | Less than | 5 < 3 → false |
| >= | Greater than or equal | 4 >= 4 → true |
| <= | Less than or equal | 5 <= 3 → false |
| != | Not equal | 10 != 2 → true |
Example 3: Relational Checks
using System;
namespace OperatorDemo
{
class RelationalOperator
{
public static void Main(string[] args)
{
bool result;
int firstNumber = 10, secondNumber = 20;
result = (firstNumber==secondNumber);
Console.WriteLine("{0} == {1} returns {2}",firstNumber, secondNumber, result);
result = (firstNumber > secondNumber);
Console.WriteLine("{0} > {1} returns {2}",firstNumber, secondNumber, result);
result = (firstNumber < secondNumber);
Console.WriteLine("{0} < {1} returns {2}",firstNumber, secondNumber, result);
result = (firstNumber >= secondNumber);
Console.WriteLine("{0} >= {1} returns {2}",firstNumber, secondNumber, result);
result = (firstNumber <= secondNumber);
Console.WriteLine("{0} <= {1} returns {2}",firstNumber, secondNumber, result);
result = (firstNumber != secondNumber);
Console.WriteLine("{0} != {1} returns {2}",firstNumber, secondNumber, result);
}
}
}
Output:
10 == 20 returns False 10 > 20 returns False 10 < 20 returns True 10 >= 20 returns False 10 <= 20 returns True 10 != 20 returns True
4. Logical Operators
Logical operators evaluate boolean expressions.
| Operand 1 | Operand 2 | OR (||) | AND (&&) |
|---|---|---|---|
| true | true | true | true |
| true | false | true | false |
| false | true | true | false |
| false | false | false | false |
- If either operand is
true, the OR operator yieldstrue. - Both operands must be
truefor AND to returntrue.
Example 4: Logical Operators
using System;
namespace OperatorDemo
{
class LogicalOperator
{
public static void Main(string[] args)
{
bool result;
int firstNumber = 10, secondNumber = 20;
result = (firstNumber == secondNumber) || (firstNumber > 5);
Console.WriteLine(result);
result = (firstNumber == secondNumber) && (firstNumber > 5);
Console.WriteLine(result);
}
}
}
Output:
True False
5. Unary Operators
Unary operators act on a single operand.
| Operator | Name | Description |
|---|---|---|
| + | Unary plus | Leaves sign unchanged |
| - | Unary minus | Negates sign |
| ++ | Increment | Increase by 1 |
| -- | Decrement | Decrease by 1 |
| ! | Logical NOT | Invert boolean |
Example 5: Unary Operators
using System;
namespace OperatorDemo
{
class UnaryOperator
{
public static void Main(string[] args)
{
int number = 10, result;
bool flag = true;
result = +number; Console.WriteLine("+number = " + result);
result = -number; Console.WriteLine("-number = " + result);
result = ++number; Console.WriteLine("++number = " + result);
result = --number; Console.WriteLine("--number = " + result);
Console.WriteLine("!flag = " + (!flag));
}
}
}
Output:
+number = 10 -number = -10 ++number = 11 --number = 10 !flag = False
Example 6: Prefix vs. Postfix Increment
using System;
namespace OperatorDemo
{
class UnaryOperator
{
public static void Main(string[] args)
{
int number = 10;
Console.WriteLine(number++); // 10
Console.WriteLine(number); // 11
Console.WriteLine(++number); // 12
Console.WriteLine(number); // 12
}
}
}
Output:
10 11 12 12
6. Ternary Operator
The ternary operator (? :) condenses an if‑else statement into a single line.
variable = Condition ? Expression1 : Expression2;
If Condition is true, Expression1 is evaluated; otherwise Expression2 is used.
Example 7: Using the Ternary Operator
using System;
namespace OperatorDemo
{
class TernaryOperator
{
public static void Main(string[] args)
{
int number = 10;
string result = (number % 2 == 0) ? "Even Number" : "Odd Number";
Console.WriteLine("{0} is {1}", number, result);
}
}
}
Output:
10 is Even Number
Learn more about the C# ternary operator.
7. Bitwise & Bit Shift Operators
These operators manipulate individual bits of integral types.
| Operator | Name |
|---|---|
| ~ | Bitwise complement |
| & | AND |
| | | OR |
| ^ | XOR |
| << | Left shift |
| >> | Right shift |
Example 8: Bitwise Operations
using System;
namespace OperatorDemo
{
class BitOperator
{
public static void Main(string[] args)
{
int firstNumber = 10, secondNumber = 20, result;
result = ~firstNumber; Console.WriteLine("~{0} = {1}", firstNumber, result);
result = firstNumber & secondNumber; Console.WriteLine("{0} & {1} = {2}", firstNumber, secondNumber, result);
result = firstNumber | secondNumber; Console.WriteLine("{0} | {1} = {2}", firstNumber, secondNumber, result);
result = firstNumber ^ secondNumber; Console.WriteLine("{0} ^ {1} = {2}", firstNumber, secondNumber, result);
result = firstNumber << 2; Console.WriteLine("{0} << 2 = {1}", firstNumber, result);
result = firstNumber >> 2; Console.WriteLine("{0} >> 2 = {1}", firstNumber, result);
}
}
}
Output:
~10 = -11 10 & 20 = 0 10 | 20 = 30 10 ^ 20 = 30 10 << 2 = 40 10 >> 2 = 2
For deeper insight, visit the C# Bitwise and Bit Shift operators guide.
8. Compound Assignment Operators
These operators combine an arithmetic operation with assignment.
| Operator | Name | Example | Equivalent To |
|---|---|---|---|
| += | Addition assignment | x += 5 | x = x + 5 |
| -= | Subtraction assignment | x -= 5 | x = x - 5 |
| *= | Multiplication assignment | x *= 5 | x = x * 5 |
| /= | Division assignment | x /= 5 | x = x / 5 |
| %= | Modulo assignment | x %= 5 | x = x % 5 |
| &= | Bitwise AND assignment | x &= 5 | x = x & 5 |
| |= | Bitwise OR assignment | x |= 5 | x = x | 5 |
| ^= | Bitwise XOR assignment | x ^= 5 | x = x ^ 5 |
| <<= | Left shift assignment | x <<= 5 | x = x << 5 |
| >>= | Right shift assignment | x >>= 5 | x = x >> 5 |
| => | Lambda operator | x => x * x | Returns x squared |
Example 9: Compound Assignment Usage
using System;
namespace OperatorDemo
{
class CompoundOperator
{
public static void Main(string[] args)
{
int number = 10;
number += 5; Console.WriteLine(number);
number -= 3; Console.WriteLine(number);
number *= 2; Console.WriteLine(number);
number /= 3; Console.WriteLine(number);
number %= 3; Console.WriteLine(number);
number &= 10; Console.WriteLine(number);
number |= 14; Console.WriteLine(number);
number ^= 12; Console.WriteLine(number);
number <<= 2; Console.WriteLine(number);
number >>= 3; Console.WriteLine(number);
}
}
}
Output:
15 12 24 8 2 2 14 2 8 1
Later tutorials will cover lambda expressions in detail.
C Language
- C# Ternary Operator: A Concise Guide to Conditional Expressions
- Mastering C++ Operators: A Complete Guide with Practical Examples
- Master C++ Operator Overloading: Practical Examples & Best Practices
- Mastering C Programming Operators: A Comprehensive Guide
- Mastering Python Operators: A Comprehensive Guide
- Master Java Operators: Types, Syntax, & Practical Examples
- Comprehensive Guide to C Operators: Types, Functions & Examples
- Comprehensive Guide to C++ Operators: Types, Usage, and Best Practices
- Mastering C# Operators: A Comprehensive Guide
- Mastering Operator Overloading in C# for Custom Types