Je suis en train de déclarer une constante PI comme ceci:
public static const double PI = Math.PI;
mais pourquoi j'obtiens cette erreur?
The constant 'Calendar.NewCalendar.PI' cannot be marked static
Je suis en train de déclarer une constante PI comme ceci:
public static const double PI = Math.PI;
mais pourquoi j'obtiens cette erreur?
The constant 'Calendar.NewCalendar.PI' cannot be marked static
const
implique static
(vous n'avez pas besoin d'une instance de référence de l' const
de la valeur).
Je veux aussi ajouter ce point important: Lorsque vous liez contre (de référence), une assemblée avec un public const
, cette valeur est copiée dans votre assemblée. Donc, si l' const
de la valeur de l'assembly référencé changements, votre assemblée sera toujours à l'origine compilé en valeur.
Si ce comportement n'est pas acceptable, alors vous devriez envisager de faire le champ public static readonly
champ.
// Lib.dll, provided as binary
public class Foo {
public const int HATS = 42;
public static readonly int GLOVES = 33;
}
// App.exe, references Lib.dll
Foo.HATS // This will always be 42 even if the value in Lib.dll changes,
// unless App.exe is recompiled.
Foo.GLOVES // This will always be the same as Foo.GLOVES in Lib.dll
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.