C# 6.0 – Dictionary Initialisierung

Mit C# 6.0 lassen sich auch Dictionaries direkt initsialisieren. Dabei spielt es auch keine Rolle welche Typen verwendet werden. Da hier nicht viel Erklärungbedarf bestehen dürfte, hier ein selbsterklärendes Beispiel (es werden Zeilennummern C++ Quellcodezeilen zugewiesen und im Dictionary gespeichert):

Dictionary<int, string> CppHelloWorldProgramCode = new Dictionary<int, string>
    {
        [1] = "#include <iostream>", 
        [2] = "", 
        [3] = "int main () {", 
        [4] = "  std::cout << \"Hello World!\" << std::endl;", 
        [5] = "  return 0;", 
        [6] = "}"
    };

C# 6.0 – Wie heißt du denn?

Um in C# 6.0 zu erfahren, wie eine Variable im Quellcode heißt, gibt es das neue Schlüsselwort „nameof„. Mit dessen Hilfe kann z.B. ein Umbennen von Variablen, welche anschließend im Logging oder Exception-Text (-Parameter) verwendet werden, so gestaltet werden, dass der Kompiler einen Fehler ausgibt, wenn die Bezeichnung nicht stimmt. Hier ein Beispiel:

public void DoSomething(string someValue)
{
    if (string.IsNullOrEmpty(someValue))
        throw new ArgumentException(nameof(someValue), $"A value for parameter \"{nameof(someValue)}\" is required!");

    // Do some stuff here
}

Und so reiht sich die neue Funktionalität wunderbar in der Sammlung positiver Aspekte von  C# ein.