У меня есть класс, который определяет константы для моего дизайна. Например следующее:Быстрый поиск членов класса (const ints, const string и т. Д.)
public static class ObjectTypes
{
/// <summary>
/// The identifier for the ConfigurableObjectType ObjectType.
/// </summary>
public const uint ConfigurableObjectType = 2;
/// <summary>
/// The identifier for the FunctionalGroupType ObjectType.
/// </summary>
public const uint FunctionalGroupType = 4;
/// <summary>
/// The identifier for the ProtocolType ObjectType.
/// </summary>
public const uint ProtocolType = 5;
}
Сейчас в моем коде я вычислил и целое значение for.eg valueInt, и я хотел бы сравнить valueInt со всеми констант, определенных в этом классе. Есть ли быстрый способ сделать это, не используя блоки If-then-else или switch, потому что, если существует большое количество констант, такой подход приведет к большому коду. Является ли лучший подход каким-то образом возможным? Я работаю на C#.
Примечание: Я не могу изменить дизайн для вышеупомянутого класса, поскольку я получаю такой класс, предопределенный, например, из библиотеки или класса, разработанного кем-то другим, который я не могу изменить, но я должен ссылаться только на свой код.
Удаление '[C++]' и '[Java]', поскольку они не связаны друг с другом. Я не вижу, как это объектно ориентировано. –
Возможно, вам следует использовать 'enum's, где у вас может быть, например. '(ObjectTypes) 5' совпадает с' ObjectTypes.ProtocolType'. А для строк «Enum.Parse»? –
@PeterLawrey Я предположил, что это общий вопрос, я сейчас работаю с C#, однако мне хотелось бы знать подход для Java или C++, так как это делает интересный вопрос для меня в отношении Java и C++, и извините, но не могли бы вы объяснить, почему вы не чувствуете, что это связано с объектной ориентацией? – Ricky