J'ai une classe comme celle-ci avec quelques attributs personnalisés. Je ne suis pas sûr si je dois réellement mettre en œuvre ces derniers.Itération à travers des propriétés avec des attributs personnalisés dans une classe
[AttributeUsage(AttributeTargets.Field)]
private class IsValue : Attribute { }
[AttributeUsage(AttributeTargets.Field)]
private class IsRep : Attribute { }
[AttributeUsage(AttributeTargets.Class)]
private class IsConstant : Attribute { }
public static class Constants
{
[IsConstant]
public static class EulerGamma
{
[IsValue]
public const double Value = 0.5772156649015;
[IsRep]
public const string Str = "γ";
}
[IsConstant]
public static class EulerNumber
{
[IsValue]
public const double Value = 2.718281828459;
[IsRep]
public const string Str = "e";
}
[IsConstant]
public static class Pi
{
[IsValue]
public const double Value = 3.1415926535898;
[IsRep]
public const string Str = "π";
}
[IsConstant]
public static class GoldenRatio
{
[IsValue]
public const double Value = 1.6180339887499;
[IsRep]
public const string Str = "φ";
}
}
Disons que cela est dans une classe « MyMathClass », où je voudrais mettre en œuvre une méthode comme ceci: string ValueOrString(double x)
Cette méthode retournerait représentation de chaîne de la constante si le nombre passé est égal au constant, sinon il retournerait le numéro d'origine. Donc, si je passais exactement 3.1415926535898 cette méthode me donnerait la chaîne "π". Si est passé par exemple 2.5315621321 cela me retournera "2.5315621321" (chaîne de caractères). Pourriez-vous m'aider s'il vous plaît?
Merci pour cette idée :-D Mes constructions étaient tellement bêtes, en fait je viens d'implémenter simplement la liste statique privée de ces noms de constante dans la classe "MyMath" :) –