データが静的な場合は、意味のある型を作成することをお勧めします
例:
public class ErrorValue
{
private static Dictionary<Int32, ErrorValue> _errors;
public static readonly ErrorValue Error404 = new ErrorValue(404, "Error 404");
public static readonly ErrorValue Error500 = new ErrorValue(500, "Error 500");
public static readonly ErrorValue Error301 = new ErrorValue(301, "Error 301");
public String ErrorName { get; private set; }
public Int32 ErrorCode { get; private set; }
private ErrorValue(Int32 errorCode, String errorName)
{
if (_errors == null)
_errors = new Dictionary<int, ErrorValue>();
ErrorName = errorName;
ErrorCode = errorCode;
_errors.Add(errorCode, this);
}
public static IEnumerable<ErrorValue> Errors { get { return _errors.Values; } }
public static ErrorValue GetErrorByCode(Int32 errorCode)
{
return _errors[errorCode];
}
}
これにより、 type のパラメーターを使用してメソッドを記述できるため、型の安全性によりエラーが発生しにくいコードになりますErrorValue
。
void HandleError(ErrorValue ev)
{
// bla bla
}
もう 1 つの利点は、このアプローチを使用すると、型を簡単に拡張できることです。Description
たとえば、コードに大きな変更を加えることなく、のような他のプロパティを追加します。
同様の静的グローバル コレクションが必要な場合は、共通のジェネリック基本クラスを抽出して、または類似のメソッドを提供できGetById
ますGetByName
。