← Вот оно

я есть неизменный словарь, который выставляется в классе.

В настоящее время мой код выглядит

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, которую я только что заметил, нет никаких методов для поддержки проверки, если оно содержит данное значение ... есть ли причина для этого, связанная с его «только для чтения»?

Ответы на вопрос(2)

Ваш ответ на вопрос