私はいくつかのカスタム属性でこのようなクラスを持っています。私は実際にこれらを実装する必要があるかどうかはわかりません。この方法は、一定の文字列表現を返しますstring ValueOrString(double x)
渡された数が等しい場合:クラスのカスタム属性によるプロパティを通した反復
[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 = "φ";
}
}
のは、これは私はこのようなメソッドを実装したいのですが、いくつかのクラス「MyMathClass」、であるとしましょうそれ以外の場合は元の数値を返します。 だから、もし私が正確に3.1415926535898に合格すれば、このメソッドは私に文字列 "π"を与えます。 例2.5315621321を渡すと、これは私に "2.5315621321"(文字列)を返します。 私を助けてもらえますか?
このアイデアのおかげで:-D私の構築はとてもダムだった、実際に私は単に "MyMath"クラスでこれらの定数名のプライベート静的リストを実装する:) –