Avatar ·

Static readonly vs const en C# : quelle est la différence et que choisir ?

Bonjour à tous ! Je suis un développeur C# débutant et je suis confus entre deux concepts similaires : `static readonly` et `const`. Les deux sont utilisés pour déclarer des valeurs immuables, mais je ne comprends pas quand utiliser chacun d'eux. Par exemple, j'écris une classe pour travailler avec des calculs mathématiques : ```csharp public class MathHelper { public const double Pi = 3.14159; public static readonly double E = 2.71828; } ``` Pourquoi ne pas faire les deux en tant que constantes ? Ou les deux en tant que `static readonly` ? Quelle est la différence fondamentale ici ? J'ai lu que `const` est plus rapide, mais `static readonly` est lié à la mémoire. J'ai aussi entendu dire que `const` ne peut être utilisé que pour les types primitifs, tandis que `static readonly` peut l'être pour n'importe quel type. Mais les conséquences pratiques ne me sont pas tout à fait claires. Pouvez-vous expliquer avec des exemples simples quand utiliser quelle option ? Je suis particulièrement intéressé par le comportement lors de la modification du code dans les bibliothèques (DLL) — j'ai entendu dire qu'il y a des pièges. Merci d'avance pour votre aide !