Operators are the foundation of any programming language, the program is incomplete without the operators as we use them in all of our programs.
Operators are the symbol that performs a specific mathematical or logical operation on operands.
Example: Addition : 2 + 3
, where 2 and 3 are the operands and + is the operator.
Following are the types of Operators in C#.
- Arithmetic Operators
- Assignment Operators
- Relational Operators
- Logical Operators
- Unary Operators
- Bitwise Operators
- Ternary or Conditional Operator
- Miscellaneous Operators
C# Arithmetic Operators
Arithmetic Operators are used to perform mathematical operations on operands such as addition, subtraction, multiplication, division etc.
operator | description |
---|---|
+ | addition adds two operands. eg, a+b. |
- | subtraction subtracts two operands. eg, a-b. |
* | multiplication multiplies two operands. eg, a*b. |
/ | division divides the operand by the second. eg, a/b. |
% | modulo returns the remainder when the first operand is divided by the second. For example, a%b. |
Click Here for example of Arithmetic Operators operators.
C# Assignment Operators
These operators are used in a program to assign a value of the right-hand side to the left-hand side as shown below.
1 2 3 4 5 6 7 | //10 is assign to the variable a int a = 5; //the value of b (10) is assigned to a int b = 10; int a = b; int a += 2; //a=a+2 |
You can combine write in short version such as instead of writing, int a = a+5
, you can write it as a += 5
.
Following are the list of assignment operators used in C#.
Operator | Description |
---|---|
= | Simple assignment operator, Assigns values from right side operands to left side operand.a = b + c; |
+= | Add AND assignment operator, It adds the right operand to the left operand and assigns the result to the left operand.a += b |
-= | Subtract AND assignment operator, It subtracts the right operand from the left operand and assigns the result to the left operand.a -= b |
*= | Multiply AND assignment operator, It multiplies the right operand with the left operand and assigns the result to the left operand.a *= b |
/= | Divide AND assignment operator, It divides left operand with the right operand and assigns the result to the left operand.a /= b |
%= | Modulus AND assignment operator, It takes modulus using two operands and assigns the result to the left operand.a %= b |
<<= | Left shift AND assignment operator.a <<= 2 |
>>= | Right shift AND assignment operator.a >>= 2 or a = a >> 2 |
&= | Bitwise AND assignment operator.a &= 2 or a = a & 2 |
^= | Bitwise exclusive OR and assignment operator.a ^= 2 or a = a ^ 2 |
|= | Bitwise inclusive OR and assignment operator.a |= 2 or a = a | 2 |
Click Here for example of Assignment Operators operators.
C# Relational Operators
These operators are used in a program to check the relationship between two operands and accordingly, it returns boolean values, true or false. These are used with loops and Decision-Making Statements during condition checking.
List of relational operators in C#:
Operator | Name | Example |
---|---|---|
== | Equal to. | A == B |
!= | Not equal. | A != B |
> | Greater than. | A > B |
< | Less than. | A < B |
>= | Greater than or equal to. | A >= B |
<= | Less than or equal to. | A <= B |
Click Here for example of Relational Operators operators.
C# Logical Operators
These operators are used to compute the logical operation in a program such as &&
, ||
and !
. They are used to evaluate the condition.
The following are the C# Logical Operators. Assume X holds the value 1 and Y holds 0
Operator | Description | Example |
&& (logical and) | If both the operands are non-zero, then the condition becomes true. | (X && Y) is false |
|| (logical or) | If any of the two operands are non-zero, then the condition becomes true. | (X || Y) is true |
! (logical not) | Use to reverses the logical state of its operand. If a condition is true then Logical NOT operator will make false. | !(X && Y) is true |
Click Here for example of Logical Operators operators.
C# Unary Operators
These operators are the Increment and Decrement Operators. They operate on a single operand. They are ++
and --
operators. ++ is used to increase the value by 1 and — is used to decrease the value by 1.
- Post-Increment or Post-Decrement:
First, the value is used for operation and then incremented or decremented. Represented as a++ or a–. - Pre-Increment Pre-Decrement:
Here First the value is incremented or decremented then used for the operation. Represented as ++a or –a.
Click Here for example of Unary Operators operators.
C# Bitwise Operators
Bitwise operators are used to perform a bit-level operation on operands. They are used in testing, setting, or shifting the actual bits in a program.
You can see the truth table below.
p | q | p & q | p | q | p ^ q | ~p |
---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0 | 1 |
0 | 1 | 0 | 1 | 1 | 1 |
1 | 1 | 1 | 1 | 0 | 0 |
1 | 0 | 0 | 1 | 1 | 0 |
Below are the list of Bitwise operators:
Operators | Name of operators |
---|---|
& | Bitwise AND |
| | Bitwise OR |
^ | Bitwise XOR |
~ | Bitwise complement |
<< | Shift left |
>> | Shift right |
Click Here for example of Bitwise Operators operators.
C# Ternary or Conditional Operator (?:
)
It is a short-hand version of the if-else statement that operates on three operands. The ternary operator (or Conditional operator) returns a true or false after checking the condition.
Syntax of ternary operator:
1 2 | //syntax condition ? expression1 : expression2; |
Explanation:
- condition: It checks the condition for a true or false value.
- expression1: If the condition is true expression1 is evaluated.
- expression2: If the condition is false expression2 is evaluated.
Example of Ternary Operator in C#
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | using System; namespace Operator { class TernaryOperator { public static void Main(string[] args) { int num = 10; string result; result = (num % 2 == 0) ? "Even Number" : "Odd Number"; Console.WriteLine("{0} is {1}", num, result); } } } |
Output:
1 | 15 is Odd Number |
Miscellaneous Operators
Apart from the above operators, there are various other operators used in C# programming and they are:
sizeof() | It returns the size of a variable, constant, array, etc. sizeof is a keyword in C#.Example: sizeof(int); // returns 4 |
typeof() | Returns the type of a class Example: typeof(StreamReader); |
& | This is a pointer operator, used to point the address of a variable, or we can say that it represents the memory address of the operand to which it points. Example: &a; , This points to the actual address of the variable a. |
* | This is also a pointer variable, Indirection Operator. It returns the value of the variable that it points to. |
is | This operator checks an object is of a certain type. Example: If(mercedes is Car) // checks if Mercedes is an object of the Car class. |
as | This operator cast without raising an exception Example: Object ob = new StringReader("World"); |
Operator Precedence in C#
In a program, there may be an expression that uses more than one operator, in such case operator precedence determines which is to be evaluated first and next.
Let us take an example:
1 2 3 4 | int result = 10 + 5 * 10; //Output: 60 |
The output of the above expression is 60 because the precedence of multiplication is higher than the addition. So first (5 * 10) is evaluated and then 10 is added to the result.
The following shows the precedence and associativity of C# operators:
Associativity refers to the direction of the operators to be evaluated first and next. It may be right to left or left to right.
Category | Operator | Associativity |
---|---|---|
Postfix | () [] -> . ++ – – | Left to right |
Unary | + – ! ~ ++ – – (type)* & sizeof | Right to left |
Multiplicative | * / % | Left to right |
Additive | + – | Right to left |
Shift | << >> | Left to right |
Relational | < <= > >= | Left to right |
Equality | == !=/td> | Right to left |
Bitwise AND | & | Left to right |
Bitwise XOR | ^ | Left to right |
Bitwise OR | | | Right to left |
Logical AND | && | Left to right |
Logical OR | || | Left to right |
Conditional | ?: | Right to left |
Assignment | = += -= *= /= %=>>= <<= &= ^= |= | Right to left |
Comma | , | Left to right |