Задать вопрос

Почему приведение int к int Enum ведет себя по разному на разных компах?

Исходные данные:
Есть неправильное значение в файле настроек.
На моей машине код отрабатывает без проблем.
Хоть 4 и выходит за пределы допустимого в enum MaterialMerge, код отрабатывается.
А вот у клиента выдает ошибку при дальнейшем использовании значения. Что собственно правильно.
Собственно почему вдруг в одном случае работает, а в другом нет?
Версии NET
На моей машине
2.0.50727.5420 SP2
3.0.30729.5420 SP2
3.5.30729.5420 SP1
4.5.50938 Type:Client
4.5.50938
4.0.0.0 Type:Client
Клиента
2.0.50727.4927 SP:2
3.0.30729.4926 SP:2
3.5.30729.4926 SP:1
4.5.51650 Type:Client
4.5.51650
4.0.0.0 Type:Client

public static MaterialMerge MaterialMerge
            {
                get
                {
                    var option = GetMergeSetting<int>("SceneMaterialMerge"); // SceneMaterialMerge =  4, что выходит за пределы enum MaterialMerge
                    return (MaterialMerge)option;
                }
                set
                {
                    SetMergeSetting("SceneMaterialMerge", (int)value);
                }
            }
    public enum MaterialMerge
    {
        UseSceneMaterial,
        UseMergedMaterial,
        KeepName,
        AutoRename
    }
  • Вопрос задан
  • 2361 просмотр
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • OTUS
    C# Developer. Professional
    6 месяцев
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 1
    1 неделя
    Далее
  • Software-testing.ru
    Программирование на C# для тестировщиков
    10 недель
    Далее
Пригласить эксперта
Ответы на вопрос 2
Кажется мне, что дело в реализации GetMergeSetting(...). Не могли бы вы привести код этого метода?
И какое значение MaterialMerge в результате такого приведения получается на вашей машине? UseSceneMaterial?

ну и stackoverflow.com/questions/29482/cast-int-to-enum...

а еще, какого результата Вы хотите добиться? чтобы эксептило, в случае кривого значения, или проходило с каким то значением по умолчанию?
Ответ написан
Track77
@Track77 Автор вопроса
В общем баг оказался в прокладке между клавиатурой и креслом - ошибся со входными данными.
Не то тестировал - у меня работает так же и никакой мистики.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы