← Вот оно
я есть неизменный словарь, который выставляется в классе.
В настоящее время мой код выглядит
using System.Collections.Generic;
using System.Collections.ObjectModel;
public class FooClass
{
private static ReadOnlyDictionary<string, byte> _validRevisions
= new ReadOnlyDictionary<string, byte>(
new Dictionary<string, byte>() {
{ "1.0", 0x00 },
{ "1.1", 0x01 },
{ "1.2", 0x02 },
{ "1.3", 0x03 }
} );
public static ReadOnlyDictionary<string, byte> ValidRevisions => _validRevisions;
// other FooClass contents...
}
Я использовал вспомогательное поле_validRevisions
поскольку я не мог найти лучший способ создания общего словаря с константой. Есть ли более аккуратный способ справиться с этим или, может быть, я должен просто обнародовать поле?
Мой главный вопрос в том, есть ли более короткий способ инициализации_validRevisions
само поле? Создание встроенного словаря для передачи его в словарь (который предназначен только для чтения) кажется немного ... запахом кода. Это? Есть ли способ лучше?
РЕДАКТИРОВАТЬ: еще одна вещь о ROD, которую я только что заметил, нет никаких методов для поддержки проверки, если оно содержит данное значение ... есть ли причина для этого, связанная с его «только для чтения»?