Category Archives: C#

A quoi peut bien servir une lambda x=>x ?

A quoi peut bien servir le genre de code ci-dessous ? ConvertAll<A>(x => x) A priori, faire une expression lambda de type “identité”, ça parait un peu capillotracté. La première idée qui vient est que ça pourrait servir pour gérer … Continue reading

Posted in C# | Tagged | Leave a comment

Dictionary<TKey, TValue> et IEquatable<TKey>

Aujourd’hui, un article pour expliquer un comportement un peu spécial dans les dictionnaires génériques de .NET. Imaginons que, pour une fonctionnalité particulière, vous ayez besoin d’un dictionnaire qui utilise une clé composite, dont la structure contient plusieurs chaînes. Souvent, il … Continue reading

Posted in .NET, C# | Tagged | 3 Comments

Quelques remarques sur la gestion des données temporelles

Je viens de lire cet excellent article sur des hypothèses fausses (parfois de manière étonnante) que les programmeurs font sur le temps et sa gestion informatisée. Quelques-unes sont très simples, comme le fait que Février n’a pas toujours 28 jours, … Continue reading

Posted in C# | 1 Comment

Bug de culture sur KinectExplorer

Microsoft a visiblement fait des efforts pour internationaliser Kinect : la reconnaissance vocale est désormais supportée dans de nombreuses langues additionnelles, dont le français. Toutefois, il reste quelques petits bugs dans les programmes exemples. C’est en particulier le cas de … Continue reading

Posted in .NET, C#, Retours | Tagged | Leave a comment

Affectation de propriétés dans le constructeur : à savoir…

Depuis .NET 3.0, il est possible d’affecter des propriétés dans la même instruction que le constructeur. On peut ainsi écrire : Rectangle r = new Rectangle() { Largeur = 2, Longueur = 3 }; Ceci s’avère très pratique, car on … Continue reading

Posted in .NET, C# | Leave a comment

Précédence des opérateurs ternaires et de concaténation

Un tout petit article pour montrer un code qui va provoquer une grave erreur : le traitement dans le catch lève lui-même une exception. using System; namespace ConsoleApplication5 { class Program { static void Main(string[] args) { try { throw … Continue reading

Posted in .NET, C# | Leave a comment

TryParse pour Enum : ça existe, mais en .NET 4.0

La plupart d’entre vous savez que gérer une exception est quelque chose de très lent, et qui peut amener à des potentiels problèmes de performance. Prenons un bloc de code comme ceci : decimal Resultat = 0; Stopwatch Chrono = … Continue reading

Posted in .NET, C# | 2 Comments

Utilité de IsAlive ?

Le bout de code ci-dessous montre une utilisation conceptuelle des WeakReference. L’idée des références faibles étant qu’elles n’empêchent pas la collection par le GC, mais que si jamais le GC n’est pas passé, elles permettent de retrouver une “vraie” référence … Continue reading

Posted in .NET, C# | Leave a comment

De la difficulté de faire un bon test

Comment tester qu’un tri a bien été réalisé ? Imaginez que vous deviez tester unitairement la fonction Sort générique de .NET. Comment réaliser le code le plus concis possible, sans redondance mais sans laisser passer de cas particulier, et qui … Continue reading

Posted in .NET, ALM, C#, Tests | Tagged | Leave a comment

Tech Days 2011 : CodeContrats

[ContractClass] et [ContractClassFor] permettent, par injection, de placer des contrats de code sur des interfaces, et qu’on retrouvera sur les classes d’implémentation. [ContractInvariantMethod] et Contract.Invariant() pour les invariances de valeurs. Pour hériter des contraintes depuis une interface, on implémente une … Continue reading

Posted in .NET, C#, Retours | Tagged | Leave a comment