# Tricks for C# Developers

In this section we will recall some **tricks and techniques** in programming with C#, already seen in this book, which can be very useful if you attend an exam for beginner programming.

## Inserting Variable Values in Strings

In programming we often need to **combine text with variable values** to obtain a string value, e.g.

```
var text = "some text";
Console.WriteLine("{0}", text);
// This will print on the console "some text"
```

In this case we are using a **placeholder** – `{x}`

, where **x** is a number (larger than or equal to 0), corresponding to the position on which we have placed our variable. Therefore, if we insert two variables, we will have one placeholder, which will be `{0}`

and it will keep the value of **the first variable** and another one – `{1}`

, which will keep the value of **the second variable**. For example:

```
var text = "some text";
var number = 5;
Console.WriteLine("{0} {1} {0}", text, number);
// This will print "some text 5 some text"
```

In this example we can see that we can insert **not only text variables**. We can also use a given variable **several times** and for this we put the number which **corresponds with the position of the variable** in the placeholder. In this case on position zero is the variable `text`

, and at first position is the variable `number`

. At the beginning, numbering can be confusing, but you need to remember that in programming **counting starts from 0**.

## Formatting with 2 Digits After the Decimal Point

When we print numbers, we often need to round them to 2 digits after the decimal point, e.g.

```
var number = 5.432432;
Console.WriteLine(Math.Round(number, 2));
// This will print on the console "5.43"
```

## Rounding Numbers

To round numbers, we may use the `Math.Round(…)`

method, which takes 2 parameters:

- the first one is
**the number we want to round** - the second one is the number that determines
**how many digits after the decimal point we want to round to**(this should always be an integer)

If we want to round the number to **2 digits after the decimal point** and the third digit is lower than 5, as in the example above, the rounding is down, but if the third digit is equal or bigger than 5 – the rounding is up as in the example below:

```
var number = 5.439;
Console.WriteLine(Math.Round(number, 2));
// This will print on the console "5.44"
```

## Other Rounding Methods

In case we always want to round down instead of `Math.Round(…)`

we can use another method – `Math.Floor(…)`

, which always rounds down, but also always rounds to an integer. For example, if we have the number 5.99 and we use `Math.Floor(5.99)`

, we will get the number **5**.

We can also do the exact opposite – to always round up using the method `Math.Ceiling(…)`

. Again, if we have for example 5.11 and we use `Math.Ceiling(5.11)`

, we will get 6. Here are some examples:

```
var numberToFloor = 5.99;
Console.WriteLine(Math.Floor(numberToFloor));
// This will print on the console 5
var numberToCeiling = 5.11;
Console.WriteLine(Math.Ceiling(numberToCiling));
// This will print on the console 6
```

## Rounding with a Placeholder

```
var num = 5.432424;
Console.WriteLine("{0:f2}", num);
```

In this case after the number we add `:f2`

, which will limit the number to 2 digits after the decimal point and will work like `Math.Round(…)`

. You should keep in mind that the number after the letter `f`

means to how many digits after the decimal point the number is rounded (i.e. it can be `f3`

or `f5`

).

## How to Write a Conditional Statement?

The conditional `if`

** construction** contains the following elements:

- Keyword
`if`

**A Boolean expression**(condition)**Body**of the conditional construction- Optional:
`else`

clause

Example:

```
if (condition)
{
// body
}
else (condition)
{
// body
}
```

To make it easier we can use a code snippet for an ** if construction**:

`if`

**+ [Tab] + [Tab]**

## How to Write a 'For' Loop?

For a ** for loop** we need a couple of things:

**Initializing block**, in which the counter variable is declared (`var i`

) and its initial value is set**Condition**for repetition (`i <= 10`

)- Loop variable (counter)
**updating statement**(`i++`

) **Body**of the loop, holding statements

```
for (var i = 0; i < 5; i++;)
{
// body
}
```

To make it easier we can use a code snippet for a `for`

** loop**:

`for`

**+ [Tab] + [Tab]**