Wenn Sie diesen Artikel über eine Suchmaschine gefunden haben, empfehle ich Ihnen, zuerst den ersten Artikel dieser Serie zu lesen. Heute werde ich Ihnen eine umfassendere C#- und Visual Studio-Programmierung vorstellen bei den Techniken.
1. DataTable.HasRows
Es gehört zu keinem Framework, aber es ist einfach, eine solche Methode durch Erweiterungsmethoden zu imitieren, wodurch die ursprüngliche Überprüfung, ob das Datentabellenobjekt ist, nicht entfällt ist leer oder die Anzahl der Codezeilen, aber es kann den Anwendungscode vereinfachen, hier ist ein Codeausschnitt:
<CODE> public static bool HasRows(this DataTable dataTable) { return dataTable.IsNull() ? false : (dataTable.Rows.Count > 0); } public static bool IsNull(this object o) { return (o == null); } To use: If(dataTable.HasRows()) { … } </CODE>
Andere Regeln sind immer noch die gleichen wie für Erweiterungsmethoden.
2. ToTitleCase
Diese Methode kann den ersten Buchstaben jedes Wortes in Großbuchstaben und die restlichen Buchstaben in Kleinbuchstaben umwandeln. Beispielsweise wird „Suchen Sie unten nach einem Beispiel“ in „Schauen“ umgewandelt Unten als Beispiel: TextInfo ist Teil des System.Globalization-Namespace, weist jedoch die folgenden Probleme auf:
Die aktuelle Kultur
Wenn die Eingabezeichenfolge ausschließlich aus Großbuchstaben besteht
Die folgende Erweiterungsmethode berücksichtigt diese beiden Mängel.
<CODE> public static string ToTitleCase(this string inputString) { return Thread.CurrentThread.CurrentCulture.TextInfo. ToTitleCase((inputString ?? string.Empty).ToLower()); } </CODE>
3. Explizite und implizite Schnittstellenimplementierung
Ist das wichtig? Ja, sehr wichtig, kennen Sie den Syntaxunterschied zwischen ihnen? Tatsächlich gibt es grundlegende Unterschiede zwischen ihnen. Die implizite Schnittstellenimplementierung einer Klasse verwendet standardmäßig eine öffentliche Methode, auf die über Objekte oder Schnittstellen der Klasse zugegriffen werden kann. Die explizite Schnittstellenimplementierung der Klasse ist standardmäßig eine private Methode, auf die nur über die Schnittstelle und nicht über das Objekt der Klasse zugegriffen werden kann. Das Folgende ist ein Beispielcode:
<CODE> INTERFACE public interface IMyInterface { void MyMethod(string myString); } CLASS THAT IMPLEMENTS THE INTERFACE IMPLICITLY public MyImplicitClass: IMyInterface { public void MyMethod(string myString) { /// } } CLASS THAT IMPLEMENTS THE INTERFACE EXPLICITLY public MyExplicitClass: IMyInterface { void IMyInterface.MyMethod(string myString) { /// } } MyImplicitClass instance would work with either the class or the Interface: MyImplicitClass myObject = new MyImplicitClass(); myObject.MyMethod(""); IMyInterface myObject = new MyImplicitClass(); myObject.MyMethod(""); MyExplicitClass would work only with the interface: //The following line would not work. MyExplicitClass myObject = new MyExplicitClass(); myObject.MyMethod(""); //This will work IMyInterface myObject = new MyExplicitClass(); myObject.MyMethod(""); </CODE>
4. Automatisches Attribut
Dies ist die beste Möglichkeit, ein Attribut zu ersetzen, das ein öffentliches und zwei private Mitglieder enthält.
Drücken Sie zweimal die Tabulatortaste (Sie müssen die Code-Snippet-Funktion aktivieren), und ein Auto-Attribut wird erstellt. Drücken Sie die Tabulatortaste erneut, um einen Namen für das Auto-Attribut zu erhalten. Der folgende Code
<CODE> private double _total; public double Total { get { return _total; } set { _total = value; } } </CODE>
wird zu
<CODE> public double Total { get; set; } </CODE>
. Beachten Sie, dass Sie weiterhin Zugriffsspezifizierer entsprechend Ihrem Design anwenden können und der Compiler private Mitgliedsvariablen für Sie erstellen sollte.
5. Leistungsstarkes Path.Combine
Path.Combine eliminiert nachgestellte Schrägstriche und pfadbezogene Probleme. Es ist einfach und benutzerfreundlich und macht die Pfadzeichenfolge kontinuierlicher Enthält einen String-Pfadparameter.
Sie müssen sich keine Gedanken über gültige Trennzeichen oder Leerzeichen im Pfad machen, und Sie müssen sich beim Zusammenführen von Pfaden nicht mit der Verkettung von Zeichenfolgen befassen.
6. Eine schnelle Möglichkeit, die „Override“-Methode in einer Klasse zu schreiben.
Geben Sie „Override“ in den Code-Editor ein und drücken Sie die Leertaste. Sie sehen eine Liste der klassenbasierten Overrides-Methoden , wie in Abbildung 2 dargestellt.
Abbildung 1 Liste überschreibbarer Methoden
7. Erweiterte Konfigurationsdatei verwenden
Vielen Dank app.config (für Anwendungen) und Web. config-Konfigurationsdateien, die es uns ermöglichen, komplexe Einstellungen auf Anwendungsebene zu verwalten, aber wir müssen uns immer noch mit verschiedenen Problemen befassen, mit denen unterschiedliche Umgebungseinstellungen konfrontiert sind. Dies bezieht sich hier auf die Einstellungen von Entwicklungs-, Test- und Produktionsumgebungen.
Wir müssen auf eine bestimmte Umgebung zurückgreifen, um Teile des Codes zu analysieren, zu testen oder zu debuggen, und jede Einrichtung und Anpassung im Prozess ist mühsam.
Beispielsweise kann es bei jeder Wiederherstellung erforderlich sein, die ConnectionStrings (Verbindungszeichenfolge) zurückzusetzen. Jetzt können Sie die Eigenschaft ConfigSource über einen externen Dateiverweis verwenden, um dieses Problem zu lösen. Der folgende Code verweist beispielsweise auf eine externe Konfigurationsdatei „development.config“.
<connectionStrings configSource="configs\ development.config" />
Sie können diese nützliche Eigenschaft auch im Abschnitt „AppSettings“ verwenden.
8. Überwinden Sie die Einschränkungen der String.Split-Methode
String.Split ist die idealste Methode zum Trennen von Zeichenfolgen, weist jedoch unseres Wissens auch einige Einschränkungen auf, z Die Unfähigkeit, „||“- oder „::“-Zeichen zu verwenden, muss ein eindeutiges einzelnes Zeichen auf der Tastatur als Trennzeichen verwenden. Dieser Mangel kann durch die Verwendung der von der RegEx-Bibliothek bereitgestellten Split-Methode behoben werden RegEx Split, um eine „||“-Zeichenfolge zu trennen.
<CODE> string delimitedString = "String.Split || RegEx.Split"); string[] ouputString = System.Text.RegularExpressions.Regex.Split( delimitedString, , System.Text.RegularExpressions.Regex.Escape("||")); </CODE>
9. Schneller Wechsel zwischen HTML-Codeansicht und Designansicht von Elementen (und umgekehrt)
Beim Entwerfen der Anwendung verwenden wir die von mir ausgegebene IDE Viel Zeit für HTML-Inhalte und Designansichten. Visual Studio 2010 bietet die Funktion, schnell zwischen Designansicht und HTML-Code zu wechseln.
Wenn Sie sich in der HTML-Ansicht befinden, suchen Sie das Element, das Sie anzeigen möchten, in der Entwurfsansicht und wechseln Sie dann zur Entwurfsansicht. Außerdem sollte das Element, das Sie anzeigen möchten, jetzt „Eigenschaften“ anzeigen des ausgewählten Elements.
Wenn Sie in der Entwurfsansicht ein Element auswählen und dann zur Codeansicht wechseln, sollte der HTML-Code, der dem von Ihnen ausgewählten Element entspricht, ebenfalls hervorgehoben werden.
10. Suchen Sie schnell nach Daten in der Datenbank
Obwohl die Datentabelle die Methoden „Find“ und „Select“ zum Auswählen von Zeilen unterstützt, sind diese nicht so einfach zu verwenden wie die Methode „DataView“, die FindRows bereitstellt Methode, die einen für die Sortierspalte erstellten Index verwenden kann, sodass sie schneller ist.
Ich hoffe, diese Tipps können Ihnen helfen, wertvolle Programmierzeit zu sparen. Probieren Sie es aus!
Weitere Tipps zur C#-Programmierung und zur Verwendung von Visual Studio (Teil 2) finden Sie auf der chinesischen PHP-Website!