Re: Минутка WTF-12: из реального проекта
От: Codechanger Россия  
Дата: 03.11.16 13:06
Оценка:
Здравствуйте, rameel, Вы писали:

R>Всем привет!


R>В дополнение к серии на тему различных WTF, начатаю ув. Sinix


R>Итак. Даны 2 примера кода:


R>
R>[MethodImpl(MethodImplOptions.NoInlining)]
R>public static int GetNumber_1(object value)
R>{
R>    var v = value as int?;
R>    if (v != null)
R>        return v.GetValueOrDefault();

R>    return 0;
R>}

R>[MethodImpl(MethodImplOptions.NoInlining)]
R>public static int GetNumber_2(object value)
R>{
R>    if (value is int)
R>        return (int)value;

R>    return 0;
R>}
R>


R>Что здесь не так? Оба кода делают одно и тоже — возвращают забоксенное значение в случае, если там int и 0 в противном случае.



Я правильно понимаю, что грабли зарыты в value as int?; ?

Судя по всему там анбокс до инта, потом создание nullable<int>, потом приведение к нему.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.