Präsentieren von Code mit Visual Studio

Nicht nur an unseren Office-Days wird oftmals Code in Visual Studio gezeigt. Dabei ist es für diejenigen, die etwas weiter weg sitzen, nicht immer leicht, alles gut zu erkennen. Doch Visual Studio bietet mehrere Möglichkeiten, die Darstellung zu verbessern.

Anzeige im Vollbildmodus

Zunächst kann die Anzeige und Anordnung der einzelnen Elemente der Entwicklungsumgebung für den Vollbildmodus optimiert werden. Hierzu bietet Visual Studio die Möglichkeit zur Aktivierung des Vollbildmodus. Dieser kann über [Alt]+[Shift]+[Enter] aktiviert werden. Hierdurch werden beispielsweise die Taskbar und die Titelleiste ausgeblendet und in der Standardeinstellung nur das Codefenster und das Menü angezeigt.
Ausgeblendete Elemente können über das Menü selbstverständlich wieder eingeblendet werden. Visual Studio merkt sich die getätigten Einstellung, sodass diese beim erneuten Aktivieren des Vollbildmodus wiederhergestellt werden.

Präsentationsmodus aktivieren

Eine Möglichkeit, alle Elemente von Visual Studio zu vergrößern, bietet der Präsentationsmodus, der in den Productivity Power Tools enthalten ist. Um diesen Modus zu (de-)aktivieren, muss zunächst mit [Strg]+[Q] die Quick Launch Bar fokussiert werden. Danach kann dort über die Eingabe von Present der Präsentationmodus ein- oder ausgeschaltet werden. Nach der Aktivierung dieses Modus werden alle Elemente, und nicht nur das aktive Code-Fenster, vergrößert dargestellt.

QuickLaunchBar

Zoomen

Um die Schriftart des Codefensters zu verändern, kann ein Zoomfaktor eingestellt werden. Dies kann entweder über die Combobox, die sich am unteren linken Rand des Fensters befindet, erfolgen, oder über das Halten der [Strg]-Taste und Drehen am Scrollrad der Maus. Nachteil hierbei ist jedoch, dass die Einstellung bei dieser Vorgehensweise nur für das Fenster gilt, in dem dies durchgeführt wird. Zeigt man eine andere Datei in einem neuen Fenster an, so wird dieser Faktor wieder zurückgesetzt.
Aber auch hierfür bieten die Productivity Power Tools eine schnell erreichbare Option. Über die Quick Tasks TxtFont+ und TxtFont- kann die Schriftgröße für das Codefenster vergrößert oder verkleinert werden. Dies ist eine globale Einstellung, sodass auch neu geöffnete Dateien die entsprechende Schriftgröße erhalten. Die Vergrößerung der Schriftart ist zwar ein eingebautes Feature in Visual Studio, lässt sich aber erst durch die Powertools schnell (und ohne den Gang über die Einstellungen) verändern.

Fazit

Die Darstellung von Code in Visual Studio bei Präsentationen lässt sich mit wenigen einfachen Mitteln verbessern. Mit dem Vollbildmodus und dem Zoomen in einem Code-Fenster sind bereits zwei Optionen direkt integriert, und durch die Productivity Power Tools (die ich jedem nur sehr ans Herz legen kann) kann die Darstellung nochmals verbessert und schnell (de-)aktiviert werden.

Mathematische Operationen mit Nullable-Types

Value-Types können per Definition nicht null sein. Sie können jedoch durch die Klasse System.Nullable gewrappt werden – C# erlaubt eine verkürzte Darstellung mit Fragezeichen nach dem Typ –, sodass einer Variablen nun auch der Wert null zugewiesen werden kann. Doch wie verhält sich eine solche Variable bei mathematischen Operationen, wie z. B. einer Multiplikation?

Wir haben beispielsweise drei Variablen des gleichen Typs, die wir miteinander multiplizieren möchten, von der jedoch eine nullable ist.

   1: int a = 20;

   2: int b = 30;

   3: int? c = null;

   4:  

   5: int? result = a * b * c;

Nun stellt sich die Frage, was bei der Berechnung als Ergebnis herauskommt.

Eine erste Annahme könnte sein, dass eine Exception geworfen wird. Das passiert jedoch nicht. Eine zweite Annahme könnte sein, dass anstatt null der Wert 0 angenommen wird. Auch das passiert nicht. Null ist nicht definiert, und somit kann kein bestimmter Wert angenommen werden – auch nicht 0.

Führen wir generell mathematische Operationen mit Variablen unterschiedlicher Typen durch, so ist das Ergebnis immer vom Typ des "größeren" Typs (int + long = long, etc.). Ist ein Typ davon jedoch Nullable, so wird das Ergebnis immer vom Type Nullable des "größeren" Typs sein (int? + long = long?, etc.).

Dies gibt auch schon einen Hinweis auf das Ergebnis unserer Multiplikation: das Ergebnis ist null, sobald auch nur eine Variable null ist.

Eine funktionierende Variante des oben angegebenen Codes könnte folgendermaßen aussehen, sofern die Variable c nicht in die Berechnung mit eingehen soll, wenn sie null ist:

   1: int? result = c.HasValue

   2:  ? (a * b * c.Value)

   3:  : (int?)(a * b);

Soll ein bestimmter Default-Wert verwendet werden, lässt sich dies folgendermaßen durchführen:

   1: int result = a * b * c.GetValueOrDefault(1);

Bei mathematischen Berechnung mit über Nullable gewrappten Datentypen ist somit Vorsicht geboten, um keine unerwarteten Werte zu erhalten.

Eine detaillierte Darstellung der Verarbeitung von Nullable-Typen findet sich hier.

Codehunt – Stellt eure Coding Skills auf die Probe

div class=”articleAbstract”>Neulich ist mir eine nette Seite im Rahmen des Imagine Cups über den Weg gelaufen: Codehunt
Es geht darum, einen vorgegebenen Codeabschnitt zu vervollständigen, um einen bestimmten Output zu erzeugen. Wer schafft das am schnellsten und mit dem kürzesten Code?

Der Output wird als Tabelle mit Ein- und Ausgabedaten angegeben. Was einfach klingt, kann auch ganz schön kompliziert werden.

Auf der Seite können Übungsaufgaben gelöst werden. Hier ein Beispiel, wie solch eine Aufgabe aussehen kann. Auf der linken Seite ist der anzupassende Code, auf der rechte die Tabelle mit den Ein- und Ausgangsdaten.

Codehunt

Im Rahmen des Imagine Cups gibt es immer wieder Wettbewerbe für einen begrenzten Zeitraum, bei denen man sich mit anderen messen und Preise gewinnen kann.

Viel Spass beim coden 🙂