тип int? - я хочу получить не NULL а 0 (т.к. дефолт нон-наллбл инта это 0) я делаю так
if (genericArg.IsValueType)
value = Activator.CreateInstance(genericArg)?.ToString();
но оно дает null, что логично, а вот как сдлеать что был именно инт
заюзал Nullable.GetUnderlyingType, работает
Дефолтное значение значимого типа = вызов пустого конструктора на нём new bool() == false new int() == 0 etc. object? defaultValue; if (t.IsValueType) { defaultValue = Activator.CreateInstance(t); } else { defaultValue = null; }
да там просто дальше мне нужно было дефолт не наллбл типа который обернут в наллбл
А ладно, не сразу понял вопрос, лучше в таких случаях писать Nullable<int> вместо int?
Обсуждают сегодня