# C Sharp for Beginners/Operators

From Wikibooks, open books for an open world

**Operators** perform actions on data. There are three types of operators in C#:

- A
*unary*operator has the form

. An example is the negation operator:**[operator]**[object]

gives you**-**number`number`

with the opposite sign (if`number`

was 12 you would get -12). - A
*binary*operator has the form`[object 1]`

. An example is the assignment operator:**[operator]**[object 2]`number`

sets**=**1234`number`

to 1234. - A
*ternary*operator has three objects on which it acts. C# only has one ternary operator, the*conditional operator*:`number == 1234 ? "good" : "bad"`

gives you "good" if`number`

is equal to 1234, but "bad" if`number`

is not equal to 1234.

You can combine operators in almost any way you like. Here is an example incorporating many different operators:

```
class OperatorsExample
{
public static void Main()
{
int number = 0;
float anotherNumber = 1.234;
string someText = "lots of ";
number = number + 4; // number is now 4
anotherNumber += 2; // this is a shorter version of the above; it adds 2 to anotherNumber, making it 3.234
someText += "text"; // someText now contains "lots of text"
number = -number; // number is now -4
anotherNumber -= number * 2; // subtracts -8 from anotherNumber, making anotherNumber 11.234.
number++; // increments number, making it -3
anotherNumber = number++; // increments number but sets anotherNumber to the original number.
// number is now -2, and anotherNumber is -3.
number--; // decrements number, making it -3
anotherNumber = --number; // decrements number and sets anotherNumber to the new number.
anotherNumber = number = 1; // sets both anotherNumber and number to 1.
bool someBoolean;
// sets someBoolean to true if anotherNumber equals number, otherwise sets it to false
someBoolean = anotherNumber == number;
}
}
```

## Prefix and Postfix[edit]

The `++`

and `--`

operators can be placed before (prefix) or after (postfix) variables. There is a subtle difference between the two; if placed before, it increments or decrements and then returns the new value, and if placed after, it increments or decrements and returns the old value. For example:

```
int x, y;
x = 0;
x++;
++x;
// x is now 2...
y = x++; // y is now 2, x is now 3
x = 2; // x is now 2 again...
y = ++x; // y is now 3, x is now 3
```