Maison  >  Article  >  développement back-end  >  Conseils de programmation C# et d'utilisation de Visual Studio (Partie 2)

Conseils de programmation C# et d'utilisation de Visual Studio (Partie 2)

高洛峰
高洛峰original
2017-02-07 11:07:001580parcourir

Si vous avez trouvé cet article via un moteur de recherche, je vous suggère de lire d'abord le premier article de cette série. Aujourd'hui, je vais vous présenter une programmation C# et Visual Studio plus riche. aux techniques.

1. DataTable.HasRows

Il n'appartient à aucun framework, mais il est facile d'imiter une telle méthode via des méthodes d'extension, ce qui n'élimine pas la vérification originale si l'objet de la table de données est vide ou le nombre de lignes de code, mais cela peut simplifier le code de l'application, voici un extrait de code :

<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>

Les autres règles sont toujours les mêmes que pour les méthodes d'extension.

2. ToTitleCase

Cette méthode peut convertir la première lettre de chaque mot en majuscule et les lettres restantes en minuscules. Par exemple, "recherchez un échantillon ci-dessous" sera converti en "Regardez". Ci-dessous pour un échantillon", TextInfo fait partie de l'espace de noms System.Globalization, mais il présente les problèmes suivants :

La culture actuelle

Si la chaîne d'entrée est entièrement en majuscules

La méthode d'extension ci-dessous prend en compte ces deux défauts.

<CODE> 
public static string ToTitleCase(this string inputString) 
  { 
   return Thread.CurrentThread.CurrentCulture.TextInfo. 
ToTitleCase((inputString ?? string.Empty).ToLower()); 
 } 
  </CODE>

3. Implémentation d'interface explicite et implicite

Est-ce important ? Oui, très important, connaissez-vous la différence de syntaxe entre eux ? En fait, il existe des différences fondamentales entre eux. L'implémentation implicite de l'interface sur une classe est par défaut une méthode publique, accessible sur les objets ou les interfaces de la classe. L'implémentation explicite de l'interface sur la classe est une méthode privée par défaut, accessible uniquement via l'interface, et non via l'objet de la classe. Voici un exemple de code :

<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. Attribut automatique

C'est le meilleur moyen de remplacer un attribut contenant un membre public et deux membres privés.

Appuyez deux fois sur la touche Tab (vous devez activer la fonction d'extrait de code) et un attribut Auto sera créé. Appuyez à nouveau sur la touche Tab pour obtenir un nom pour l'attribut Auto. Le code suivant

<CODE> 
 private double _total; 
 public double Total 
 { 
 get { return _total; } 
 set { _total = value; } 
 } 
 </CODE>

devient

<CODE> 
public double Total { get; set; } 
 </CODE>

Notez que vous pouvez toujours appliquer des spécificateurs d'accès en fonction de votre conception et que le compilateur doit créer des variables membres privées pour vous.

5. Path.Combine puissant

Path.Combine élimine les barres obliques finales et les problèmes liés au chemin grâce à ses fonctions puissantes, ce qui rend la chaîne de chemin plus continue. contient un paramètre de chemin de chaîne.

Vous n'avez pas à vous soucier des délimiteurs ou des espaces valides dans le chemin, et vous n'avez pas à gérer la concaténation de chaînes lors de la fusion des chemins.

6. Un moyen rapide d'écrire la méthode "Override" dans une classe

Entrez override dans l'éditeur de code et appuyez sur la barre d'espace, vous verrez une liste des méthodes de remplacement basées sur la classe. , comme le montre la figure 2.

C#编程和Visual Studio使用技巧(下)

Figure 1 Liste des méthodes remplaçables

7. Utiliser le fichier de configuration étendu

Merci app.config (pour les applications) et web. config, nous permettant de gérer des paramètres complexes au niveau de l'application, mais nous devons encore faire face à divers problèmes rencontrés par différents paramètres d'environnement, il s'agit ici des paramètres des environnements de développement, de test et de production.

Nous devons revenir à un environnement spécifique afin d'analyser, tester ou déboguer des parties du code, et chaque configuration et ajustement dans le processus est fastidieux.

Par exemple, chaque restauration peut nécessiter la réinitialisation des ConnectionStrings (chaîne de connexion), vous pouvez désormais utiliser la propriété ConfigSource via une référence de fichier externe pour résoudre ce problème. Par exemple, le code suivant fait référence à un fichier de configuration externe development.config.

<connectionStrings configSource="configs\ development.config" />

Vous pouvez également utiliser cette propriété utile dans la section AppSettings.

8. Surmonter les limitations de la méthode String.Split

String.Split est la méthode la plus idéale pour séparer les chaînes, mais pour autant que nous le sachions, elle présente également certaines limitations, telles que l'impossibilité d'utiliser les caractères "||" ou "::" doit utiliser un caractère unique sur le clavier comme séparateur. Cette lacune peut être surmontée en utilisant la méthode Split fournie par la bibliothèque RegEx. RegEx Split pour séparer un "||" Chaînes séparées.

<CODE>
string delimitedString = "String.Split || RegEx.Split");
string[] ouputString = System.Text.RegularExpressions.Regex.Split(
 delimitedString,
 , System.Text.RegularExpressions.Regex.Escape("||"));
 </CODE>

9. Basculement rapide entre la vue code HTML et la vue conception des éléments (et vice versa)

Lors de la conception de l'application, nous utilisons l'IDE que je dépense. beaucoup de temps sur le contenu HTML et la vue conception. Visual Studio 2010 offre la fonction de basculer rapidement entre la vue conception et le code HTML.

Si vous êtes en mode HTML, localisez l'élément que vous souhaitez afficher en mode Conception, puis passez en mode Conception, l'élément que vous souhaitez afficher doit être sélectionné. De plus, la fenêtre Propriétés doit maintenant afficher Propriétés. de l'élément sélectionné.
De même, lorsque vous sélectionnez un élément en mode conception puis passez en mode code, le code HTML correspondant à l'élément que vous avez sélectionné doit être mis en surbrillance.

10. Rechercher rapidement des données dans la base de données

Bien que la table de données prenne en charge les méthodes Find et Select pour sélectionner des lignes, elles ne sont pas aussi faciles à utiliser que la méthode DataView fournit un FindRows. méthode, qui peut utiliser un index créé sur la colonne de tri, donc c'est plus rapide.
J'espère que ces conseils pourront vous aider à gagner un temps précieux en programmation, essayez-le !

Pour plus de conseils sur la programmation C# et l'utilisation de Visual Studio (Partie 2), veuillez faire attention au site Web PHP chinois !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn