BillWoodruff
Если эти целочисленные свойства имеют некоторую согласованную регулярную функцию, и вы не хотите использовать тип Nullable Int, как предложил Мехди, вы можете сделать что-то вроде этого
public class YourClass
{
public const Int32 INTNOTSET = Int32.MinValue;
public int Int1 { set; get; }
public YourClass()
{
Int1 = INTNOTSET;
}
}
Затем вы должны проверить, инициализируется ли это свойство следующим образом:
YourClass yourClass = new YourClass();
if (yourClass.Int1 == YourClass.INTNOTSET)
{
// Int1 uninitialized
}
else
{
// Int1 value set
}
Обратите внимание, что определение INTNOTSET как константы в 'YourClass приводит к тому, что он является статическим полем класса, доступ к которому должен осуществляться через ссылку на сам класс.
Не зная больше о том, что такое ваше приложение и что оно делает, а также об общих аспектах ваших переменных Int и их использовании( если таковые имеются), оценка релевантности любой техники - это взгляд в хрустальный шар :) Однако если ваши свойства Int предназначены для хранения значений, возвращаемых из баз данных запросов, то вы, вероятно, захотите использовать Nullable Int.
Использование Nullable типов не вызывает бокса и un-бокса, но добавляет некоторые накладные расходы, но так же как и техника, показанная здесь, или любая другая техника.
В зависимости от контекста, в одном сценарии использование словаря<string,int> может быть полезным и так далее.
Member 11859517
у меня есть больше propery, int,bool, string, long,...
и я делаю что-то вроде этого
Словарь< string, object="" & gt; dic = новый словарь< string, object="">();
по каждому элементу (PropertyInfo Пи на объект MyObject.GetType (). GetProperties())
{
if (pi. PropertyType == typeof (string))
{
...здесь я хочу проверить, установлено свойство или нет ....
string value = (string)pi. GetValue(myObject, null);
if (! string.IsNullOrEmpty(значение))
{
ДВС-синдром.Добавить(Пи.Имя, значение);
}
}
if (pi. PropertyType == typeof(int?))
{
...здесь я хочу проверить, установлено свойство или нет ....
int value = (int)pi. GetValue(myObject, null);
if (value != null)
ДВС-синдром.Добавить(Пи.Имя, значение);
}
}
в моем классе больше свойств, я устанавливаю только 2 5 prop. Хочу проверить свойство имеет значение или нет,,,
у плз есть какая-то идея..