C# 6.0 – Lambda Expressions für Read-Only Properties

Als Ergänzung zu der Möglichkeit, in C# 6.0 ganze Methoden durch Lambda Expressions zu ersetzen, ist dies auch mit Read-Only Properties sehr simpel  möglich. Hierzu muss lediglich ein ähnlicher Aufbau wie bei den Methoden verwendet werden.

public string Name { get; private set; } 
public string BackwardsName => new string(Name.Reverse().ToArray());

C# 6.0 – INotifyPropertyChanged – Eine Basis für ein ViewModel

Mit C# 6.0 hat sich viel geändert und vor allem verbessert. So auch die Möglichkeit die Schnittstelle INotifyPropertyChanged einzubinden. Hier bekommt man zwar von der aktuellen ReSharper Version eine schöne Unterstützung, aber wer mehr will, muss noch Hand anlegen. Ich habe in diesem Video das Ganze soweit entwickelt, dass Properties direkt in einem Dictionary gespeichert werden und somit für den Quellcode schlanker aussehen. Trotz einiger Versprecher und Vertipper hier das Video zur Implementierung:


 

Weiterlesen

C# 6.0 – Lambda Expressions für Methoden verwenden

Mit der Version 6.0 von C# wird es möglich sein anstelle von Methoden-Implementation simple Lamdba Expressions zu verwenden, um so den Quellcode noch kleiner zu halten. Der hierbei benötigte Aufwand ist sehr überschaubar und ermöglicht es saubere Methoden zu definieren. Hier ein Beispiel:

public class Dog
{ 
    public string Name { get; private set; }
    public int Age { get; private set; }
	
    public Dog(string name, int age)
    {
        Name = name;
        Age = age;
    }
 
    public void AgeIncrement() => Age++;
    public int AgeInDogYears() => Age * 7;
}

Die beiden Methoden „AgeIncrement“ und „AgeInDogYears“ machen hierbei von der neuen Funktionalität Gebrauch. In der Theorie kann man den Quellcode oben noch weiter vereinfachen, aber ich wollte an dieser Stelle nur dieses eine Thema behandeln.

C# 6.0 – Read-Only Auto-Properties vom Konstruktor initialisieren

In C# 6.0 hat Microsoft die Möglichkeit geschaffen, Read-Only Auto-Properties vom Konstruktor zu initialisieren. Auch dann, wenn diese keinen direkten Setter haben. Hierbei gibt es zwei Möglichkeiten. Die eine ist die direkte Initialisierung bei der Definition der Eigenschaft. Die andere ist vom Konstruktor aus. Und dies würde so aussehen:

public DateTime CreationTime { get; } = DateTime.Now;

Und hier noch die direkte Initialisierung vom Konstruktor aus:

public class MyObject
{
    public string Name { get; }
 
    public MyObject(string name)
    {
        Name = name;
    }
}

So wird ungewolltes überschreiben noch besser verhindert.

C# 6.0 – Ausnahmen filtern

Mit C# 6.0 hat Microsoft wieder einige neue Funktionalitäten hinzugefügt, die das Schreiben von Quellcode nicht nur erleichtern sondern auch übersichtlicher gestalten. Eine dieser Neuerungen in C# 6.0 ist das sogenannte „Exception filtering“ mit dem es möglich ist, auftretene Ausnahmen nur unter bestimmten Bedingungen abzufangen und andernfalls einfach durchzulassen. Das Abfangen einer Exception unter bestimmten Bedingungen könnte zum Beispiel wie folgt aussehen:

try
{
	int x = 5 / 0;
}
catch (DivideByZeroException ex) if (DateTime.Now.DayOfWeek != DayOfWeek.Saturday)
{
	Console.WriteLine(ex.Message);
}

Hier wird die Ausnahme an jedem Wochentag abgefangen außer Samstags. Wenn wir also einen Samstag haben, wird die Exception in diesem Fall normal weiter gegeben bis jemand diese abfängt oder die Applikation abstützt.

Unerwünschte Zeichen aus einem String entfernen mittels Regex.Replace

Mit der Hilfe von Regex.Replace lässt sich auf einfache Art und Weise unerwünschter Inhalt aus einem String entfernen. Das Einzige was hierfür gekonnt sein muss, ist es Regex-Expressions schreiben zu können. Hilfe zu Regex findet man unter anderem bei Wikipedia. Der Quellcode um z.B. aus einer Eingabe alle Nicht-Zahlen-Zeichen zu entfernen könnte wie folgt aussehen:

string input = "Some random Input 123 with some numeric 456 numbers inside 789!";

Regex regex = new Regex("[^0-9]+");
string result = regex.Replace(input, string.Empty); //Ergebnis in "result" sollte nun "123456789" sein.

Viel Spaß beim Experimentieren. 🙂 Weiterlesen

Spielerisch C# lernen

Kurzmitteilung

Mehr als nur „Hallo Welt!“ – Lernen Sie die App-Entwicklung mit C#, XAML und Visual Studio kennen! Statt reiner Theorie entwickeln wir gemeinsam ein kleines Whac-A-Mole-Spiel, ohne jegliche Vorkenntnisse und bis hin zum funktionierenden Spiel. Alles was wir brauchen ist Spaß am Spiel, verbunden mit einer gehörigen Portion Neugier – und Visual Studio, kostenlos in der Community-Edition erhältlich.

Zum Tutorial: Spielerisch C# lernen

Neuerungen in C# 6.0

Kurzmitteilung

Mit dem Visual Studio 2015 geht C# bereits in Version 6.0 „online“. Was genau die neue Version alles zu bieten hat, lässt sich im Blogpost auf informatik-aktuell nachlesen. Viele der Neuerungen sehen wirklich interessant aus und könnten das Leben der Programmierer deutlich vereinfachen.

Prüfen, ob ein Wert sich zwischen zwei anderen Werten befindet

Zu Prüfen, ob ein Wert zwischen zwei anderen Werten liegt, kann sehr schwierig sein. Besonders wenn noch Dinge wie negative Werte, Toleranzen und andere Dinge mit einfließen. In diesem Blog-Post möchte ich euch eine generische Methode vorstellen, welche es ermöglicht genau dies zu prüfen. Wir machen uns hierfür die Implementierung der Comparer-Methode des .NET-Frameworks zunutze. Außerdem erfolgt die Implementierung als Typerweiterung. Weiterlesen

Nintendo Wii U Entwicklung -Was benötigt wird

Wer für Nintendo’s neueste Heimkonsole, die Wii U, Software entwickeln möchte, benötigt zuvor einige Dinge. Eines davon ist eine Lizenz, um für Nintendo Software schreiben zu dürfen. Dann ist noch eine modifizierte Konsole nötig, welche für die Entwicklung spezielle Anpassungen hat. Die modifizierte Hardware kann beantragt werden, sobald man in das Nintendo Developer Programm eingetreten ist. Und leider ist genau die Hardware der Punkt, denn dieser ist mit teils hohen Kosten verbunden. Für eine Registrierung zum Nintendo Development Program (dieser Punkt ist noch kostenlos), muss nur das Formular auf der Nintendo Webseite ausgefüllt werden. Hier wird direkt angeboten das Web-Framework zu nutzen oder lieber Unity zu verwenden. Ich würde letzteres empfehlen.  Weiterlesen