Die Präprozessor Direktive #line
Präprozessordirektiven wie zb
- #region
- #endregion
- #if
- #else
- #endif
- #warning
sollten mittlerweile die meisten Entwickler kennen, jedoch was ist zb mit der #line - Direktive.
Durch den Präprozessor Befehl #line hidden, werden aufeinander folgende, bis zur #line default Direktive, Quellcode Zeilen, vor dem Debugger verborgen.
Was bringt mir als Entwickler diese Direktive?
Der Vorteil für den Entwickler liegt darin, dass er beim Debuggen nicht immer wieder in Methoden wie zB. die überschrieben Methode WndProc eines Forms reinsteppt. (Welchem Entwickler, hat es noch nicht den letzten Nerv geraubt, wenn er beim Debuggen, immer wieder in diese Methode zu reinsteppt)
#line hidden protected
override void WndProc(ref Message m){
…
base.WndProc(ref m);}
#line default Der Vollständigkeits halber, noch einen weiterer Anwendungsfall, der der #line Direktive.
In diesem Beispiel zeuge ich, wie man mittels der #line Direktive, die Code Zeile und den Dateinamen in Fehler oder Warnungs Ausgaben manipulieren kann.
Falls ihr eine sinnvolle Verwendung findet, immer her damit, denn leider fällt es mir schwer, für diesen Präprozessor, eine wirklich sinnvolle Verwendung zu finden.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
int zahl = 0;
//#line Zeilennummer “Filename” der Filename ist optional
#line 42 "Die Antwort aller Fragen, befindet sich in der QuellcodeZeile.cs"
int neueZahl = 23 / zahl;
#line default
Console.WriteLine();
}
}
} und an dieser Stelle, der dazugehörige Fehler:
at ConsoleApplication2.Program.Main(String[] args) in c:\Users\Lars\Documents\Visual Studio 2010\Projects\ConsoleApplication2\ConsoleApplication2\Die Antwort aller Fragen, befindet sich in der QuellcodeZeile.cs:line 42
...