私の質問は一例として最もよく説明されています。追加情報を.NET Enumに関連付ける
は、私が列挙型があるとします。
public enum ArrowDirection
{
North,
South,
East,
West
}
私はその方向で、各方向に対応する単位ベクトルを関連付けます。たとえば、北の場合は(0、1)、西の場合は(-1、0)を返すものが必要です。Javaでは、その機能を提供できるenumの中にメソッドを宣言できます。
私の現在の解決策は、渡されたArrowDirectionに対応するベクトルを返す静的メソッド(enumを定義するクラスの内側にあります)です(このメソッドはHashTableを使用して検索を実行しますが、 。これは...汚れているようです。
質問:
.NETの列挙型に対応する追加情報を格納するためのベストプラクティスの解決策はありますか?
それはかなりクールです。私は拡張機能について知っていましたが、enum拡張子のためにそれらを使用することは考えていませんでした –
ええ、最初はどちらかです。友人はそれについて私に語った。とてもいいですね。私はまた、あなたがnull値で拡張メソッドを呼び出すことができる(最近、ここではSO)ことを知って驚いた。これは静的メソッドなので、まだ動作します。いつものように、C#チームはこれらの機能を考えて素晴らしい仕事をしてきました。 –
あなたは受け入れられた答えを得るつもりです。私はそれを試して、それは完全に動作します。唯一のことは。正確にどこで列挙型を宣言すべきですか?私がクラスに残しておけば、アクセスしにくいと言います。私はそれを動作させるために "ClassName_Enums"クラスを作らなければなりませんでした。 – colithium