mai
2007
Prenons le code suivant : public static class StringExtension { public static string Format(this string template, params object[] parameters) { return string.Format(template, parameters); } } string s = StringExtension.Format("{0}", "toto"); ne pose pas de problème. En revanche, string s = "{0}".Format("toto"); génère une erreur à la compilation : « Member ‘string.Format(string, params object[])’ cannot be accessed with an instance reference; qualify it with a type name instead » Il faut caster […]
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
Thomas Lebrun vient de publier un post sur la maniplutaion des flux RSS avec .NET 3.5 qui devrais en intéresser plus d’un.
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
Il est maintenant possible de faire sa recherche sur le msdn français depuis http://search.msdn.microsoft.com/search/Default.aspx