Thursday, June 16, 2011

C# provides a large set of operators

C# provides a large set of operators, which are symbols that specify which operations to perform in an expression. Operations on integral types such as ==!=<><=>=binary +binary -^&|~++--, and sizeof() are generally allowed on enumerations. In addition, many operators can be overloaded by the user, thus changing their meaning when applied to a user-defined type.
The following table lists the C# operators grouped in order of precedence. Operators within each group have equal precedence.
Operator categoryOperators
Primaryx.y
f(x)
a[x]
x++
x--
new
typeof
checked
unchecked
default(T)
delegate
->
Unary+
-
!
~
++x
--x
(T)x
true
false
&
sizeof
Multiplicative*
/
%
Additive+
-
Shift<<
>>
Relational and type testing<
>
<=
>=
is
as
Equality==
!=
Logical AND&
Logical XOR^
Logical OR|
Conditional AND&&
Conditional OR||
Null-coalescing??
Conditional?:
Assignment and lambda expression=
+=
-=
*=
/=
%=
&=
|=
^=
<<=
>>=
=> Lambda Operator

The arithmetic operators (+-*/) can produce results that are outside the range of possible values for the numeric type involved. You should refer to the section on a particular operator for details, but in general:
  • Integer arithmetic overflow either throws an OverflowException or discards the most significant bits of the result. Integer division by zero always throws a DivideByZeroException.
  • Floating-point arithmetic overflow or division by zero never throws an exception, because floating-point types are based on IEEE 754 and so have provisions for representing infinity and NaN (Not a Number).
  • Decimal arithmetic overflow always throws an OverflowException. Decimal division by zero always throws a DivideByZeroException.
When integer overflow occurs, what happens depends on the execution context, which can be checked or unchecked. In a checked context, an OverflowException is thrown. In an unchecked context, the most significant bits of the result are discarded and execution continues. Thus, C# gives you the choice of handling or ignoring overflow.
In addition to the arithmetic operators, integral-type to integral-type casts can cause overflow, for example, casting a long to an int, and are subject to checked or unchecked execution. However, bitwise operators and shift operators never cause overflow.

No comments:

Post a Comment

Thank you for Commenting Will reply soon ......

Featured Posts

#Linux Commands Unveiled: #date, #uname, #hostname, #hostid, #arch, #nproc

 #Linux Commands Unveiled: #date, #uname, #hostname, #hostid, #arch, #nproc Linux is an open-source operating system that is loved by millio...