Mots clefs du C#
using
L'utilisation de l'instruction using doit être vue comme un pattern en C#, un objet présent dans une instruction using doit dérivée d'une interface IDisposable. Ce qui nous obligera lors de la conception de codes propres à systématiquement écrire une fonction Dispose de nos objets et à y placer le code nécessaire lors de la destruction de cet objet :
Pour les objets qui implémente la fonction Dispose, l'appel à MyObject.Dispose() est automatique ce qui est finalement pratique.
http://msdn.microsoft.com/fr-fr/library/yh598w02(v=vs.80).aspx
Le pattern est moins clair mais avec ces deux articles, on comprendra que l'utilisation de ce pattern permet l'écriture de code propre en se posant systématiquement la question de la destruction d'un objet. Car il est toujours préférable de libérer aussi tôt que possible les ressources limitées comme les handles de fichiers ou les connexions réseaux.
accessibilité des membres d'une classe, d'un assembli
public : l'accès n'est pas restreint.protected : l'accès est limité à la classe conteneur ou aux types dérivés de la classe conteneur.
internal : l'accès est limité à l'assembly actuel.
protected internal : l'accès est limité à l'assembly actuel ou aux types dérivés de la classe conteneur.
private : l'accès est limité au type conteneur.
http://msdn.microsoft.com/fr-fr/library/ba0a1yw2(v=vs.80).aspx
problème : une class possède comme niveau d’accessibilité par défaut le niveau private et cela pose un problème car parfois le code généré reste ainsi inaccessible.
solution : pensez à mettre la class générée en public si vous avez besoin de l'utiliser.
static
Un membre de type static appartient au type lui même plutôt qu'à une instance de la classe. On y accède en utilisant le nom du type et non le nom de l'instance.
Exemple : Imaginons que nous ayons besoin de compter le nombre d'employés d'une entreprise :
public class Employee
{
public string id;
public string name;
private static long employeeCounter = 0;
public static long NbEmployes
{
get { return employeeCounter ; }
}
public Employee()
{
employeeCounter += 1;
}
public Employee(string name, string id)
{
this.name = name;
this.id = id;
employeeCounter += 1;
}
}
static void Main()
{
Employee e = new Employee("Tara Strahan", "AF643G");
// Display the Number of Employees
Console.WriteLine("New Number of Employees: {0}", Employee.NbEmployes);
}
Exemple : Imaginons que nous ayons besoin de compter le nombre d'employés d'une entreprise :
public class Employee
{
public string id;
public string name;
private static long employeeCounter = 0;
public static long NbEmployes
{
get { return employeeCounter ; }
}
public Employee()
{
employeeCounter += 1;
}
public Employee(string name, string id)
{
this.name = name;
this.id = id;
employeeCounter += 1;
}
}
static void Main()
{
Employee e = new Employee("Tara Strahan", "AF643G");
// Display the Number of Employees
Console.WriteLine("New Number of Employees: {0}", Employee.NbEmployes);
}
out
Passage par référence d'une variable n'ayant pas besoin de valeur initiale car c'est une variable de "sortie".Types Nullables C#
Créé pour travailler avec des bases de données lorsque la donnée n'a pas de valeur affectée.
Opérateur ??
Exemples :
int? c = null;
// d = c, unless c is null, in which case d = -1.
int d = c ?? -1;
int? e = null;
// d = c or e, unless c and e are both null, in which case d = -1.
d = c ?? e ?? -1;
Aucun commentaire:
Enregistrer un commentaire
Pour plus d'interactivité, n'hésitez pas à laisser votre commentaire.