mai
2007
Le code suivant fonctionne sans problème : class Test { static void Toto(string s1) { } class SubTest { static void Tutu() { Toto("un"); } } } En revanche le code suivant class Test { static void Toto(string s1) { } class SubTest { static void Tutu() { […]
mai
2007
Imaginez le cas suivant : vous avez une classe C1, un RealProxy<C1> et une interface graphique sur laquelle vous avez des contrôles bindés avec les propriétés de C1 via le RealProxy. Ce RealProxy est définit de tel sorte que si une exception se produit lors du set d’une propriété de C1, il remonte un évènement. Ainsi, en cas de binding, même si l’utilisateur a rentré une valeur qui génère une exception, il ne sera pas […]
mai
2007
Thomas Lebrun vient de me faire découvrir via son blog un site qui au premier regard a l’air très intéressant si, comme moi, vous développez des applications Windows : http://windowsclient.net/
mai
2007
Sauf erreur de ma part, C# n’autorise pas les arguments optionnels avec des valeurs par défaut. Ludovic m’a montré aujourd’hui que VB si. Public Function Toto(Optional ByVal t As String = "AZERTY") As String Return t End Function Du coup si on fait Console.WriteLine(Toto()) Console.WriteLine(Toto("QWERTY")) On a AZERTY QWERTY dans la console. Maintenant, cela m’amène à me poser une question : pourquoi ce n’est pas possible avec C# ? Pour info, le compilateur remplace […]
mai
2007
Keyvan Nayyeri vient de poster un article expliquant comment ajouter des commandes à un Control perso WPF.
mai
2007
Pour rappel, les Collections Initializer permettent de remplir une liste dans la même instruction que son initialisation : List<string> brothers = new List<string> { "Matthieu", "Vincent", "Perrine", "Sylvain", "Rémi" }; cela équivaut à : List<string> brothers = new List<string>(); brothers.Add("Matthieu"); brothers.Add("Vincent"); brothers.Add("Perrine"); brothers.Add("Sylvain"); brothers.Add("Rémi"); Je me suis posé la question suivante : que fait-il pour utiliser les collection initializer sur un object ? Il faut que la classe de l’objet implémente IEnumerable et il faut […]
mai
2007
Le mot clé var ne peut être utilisé que dans le corps d’une méthode (ou propriété) impossible donc d’écrire ceci : private var _persons = new List<Person>(); pour l’instant du moins.
mai
2007
Je viens d’être assez surpris par la dll WindowsBase (pour rappel c’est une dll WPF fournit à partir du Framework 3.0). En effet, j’ai trouvé dans cette dll une classe ObservableCollection<T> ou encore ReadOnlyObservableCollection<T> qui sont certes bien utiles. J’ai moi-même déjà développé des classes équivalentes mais je suis surpris de les retrouver dans cette dll. Je comprend un peu mieux que la nouvelle interface INotifyCollectionChanged s’y trouve, même si l’aurais plutôt vu avec sa […]
mai
2007
A ma grande surprise, la méthode Copy n’existe pas sur la classe Directory. Bien que je pense que cela a déjà été fait 1000 fois et qu’on peut sûrement trouver plein de sources sur le web, je l’ai refaite : public static class DirectoryExtension { public static bool Copy(string sourcePath, string destPath) { if (!Directory.Exists(sourcePath)) throw new IOException(); […]
mai
2007
Si vous voulez utiliser des caractères spéciaux dans une chaîne de caractère il y a au moins deux manières de faire. Prenons l’exemple du caractère ‘\’ : "a\\a" qui donnera « a\a » @"a\a" qui donne « a\a » En revanche, avec les caractères, il n’est pas possible de faire @’\’. Il faudra passer par ‘\\’.