mai
2007
Imaginons le code suivant : public class Test { public void Toto() { } } public static class ObjectExtension { public static void Toto(this object o) { } } (new Test() as object).Toto(); appelle logiquement l’extension method. En revanche, quand le designer nous propose la méthode Toto sur (new Test() as object), il lui met le symbôle des méthodes et non celui des extension methods.
mai
2007
Petite précision : ceci relève plus du domaine de l’amusement que du domaine du sérieux. Hier j’avais blogué sur la possibilité de condenser le code grâce aux extension methods et aux lambdas expressions. Je me suis amusé à définir plus que le foreach : public delegate void Action(); static class Extension { public static void ForEach<T>(this IEnumerable<T> sequence, params Action<T>[] actions) { foreach (T t in sequence) […]
mai
2007
Hier j’animais une présentation de C# 3.0. Pour cette présentation, j’ai eu la mauvaise idée de faire mes slides en WPF et non avec power point. S’il est vrai que j’ai pu faire des choses que je n’aurais pas pu faire avec power point, il faut bien reconnaitre que j’ai passé grosso modo 5 fois plus de temps à faire ma pres et pourtant je me suis aidé de Blend ! J’avoue aussi que je […]
mai
2007
Après avoir reçu mon diplôme MCTS, je viens de recevoir mon diplôme MCTS .NET Framework2.0 Windows Applications (merci freddyboy pour le lien). Ce dipôme intègre les certifs 70-536 et 70-526. Sinon, je ne l’avais pas précisé hier (en fait c’était plutôt ce matin :D) mais dans ma nouvelle version de DataBinding avancé, il y a une expression régulière pour valider les plaques d’immatriculation française. Si quequ’un en a besoin…
mai
2007
Créer une extension method ForEach sur l’interface IEnumerable<> qui prend en paramètre un param de Action<>. Il fallait y penser et oser le faire !
mai
2007
J’avais récemment blogué sur la possibilité de définir une valeur par défaut pour les paramètres des méthodes en VB. J’apporte un petit complément : tous les paramètres qui suivent le paramètre Optional doivent-être Optional. Si vous avez des paramètres non optional, il faudra les mettre avant les paramètres optional. Immaginons la méthode suivante : public Function Test(ByVal value as Integer, Optional ByVal un as Integer = 1, Optional ByVal deux as Integer = 2) Si […]
mai
2007
Dans le blog suivant, on voit une implémentation de factoriel assez complexe. Une implémentation simple est la suivante : Func<int, int> fac = null; fac = x => x == 0 ? 1 : x * fac(x – 1); Pour pouvoir écrire la deuxième ligne de code, on est obligé d’initialiser fac à null. Mais comme l’apel de fac se fera plus tard, il sera redéfini par la deuxième ligne (et ne sera plus égal […]
mai
2007
J’avais précédemment posté sur le fait que VS Orcas Beta 2 intégrerait les partials methods. Cependant, je me demandais bien à quoi cela pouvait servir. Je pense avoir trouvé un début d’explication : Dans le cas d’une classe, vous pouvez appeler une méthode virtuelle qui ne fait rien afin que des classes dérivées puissent rajouter du code. Je pense que c’est la même chose. Les méthode générées par le designer appellent des méthodes partial (donc […]
mai
2007
La guerre des Sambres, la BD co-dessinée par mon frère sort demain. Vous pourrez la trouver sur le site de la fnac par exemple. A noter que sur le site de la fnac, il y a plusieurs erreurs : La couverture n’est pas le bonne, le scenariste c’est Yslaire, Vincent Mézil et Jean Bastide sont les dessinateurs et du coup l’auteur c’est les 3. La bonne couverture est disponible sur http://www.wartmag.com/?p=252
mai
2007
En C#, depuis VS 2005, quand vous tapez le nom d’une classe pour laquelle vous n’avez pas fait le using, vous avez la possibilité de le rajouter automatiquement via l’intellisence. Pas en VB :(. Comme vient de le faire remarquer Daniel Moth sur son blog, avec Orcas cela est également possible en VB ! Cependant, en VB, cela n’est possible que lorsque vous quittez la ligne alors qu’en C#, c’est dès qu’on tape le nom […]