Есть ли способ проверить целостность переменной класса в той точке кода, в которой она создана?
Например, я создаю и инициализирую переменную-член класса, например this:
public class MyClass
{
public static Dictionary<MyEnum, int> SomeDictionary = new Dictionary<MyEnum, int> {
{ MyEnum.First, 9 },
{ MyEnum.Second, 7 },
{ MyEnum.Third, 17 }
};
// This obviously doesn't compile
Debug.Assert(<SomeDictionary contains good stuff>);
// Some method in my class
public void SomeMethod()
{
// I could use something like this in this method to verify
// the integrity of SomeDictionary, but I'd rather do this
// at the point (above) where SomeDictionary is defined.
Contract.Requires(<SomeDictionary contains expected stuff>);
}
}
Как я отмечаю в коде, я хочу проверить содержимое моих данных в области "класса", но Debug.Assert
и Contract.Requires
работают только в методе (или свойстве) область действия.
РЕДАКТИРОВАТЬ: В этом вопросе первоначально использовался список, чье содержимое (косвенно) связано с Enum в качестве примера, но люди зациклены на том, как этот список был получен из Enum, а НЕ на вопросе о том, как проверить содержимое списка. Поэтому я полностью переписал вопрос, чтобы уточнить, что речь идет о проверке, а не о построении структуры данных.