Для ссылочных типов свойство (или поле), которое не установлено, будет иметь значение null
. Поскольку string
является ссылочным типом, вы можете проверить это очень просто:
if(u.Test == null)
{
Console.WriteLine("Property test of variable u is not set!");
}
Для других типов это не так просто. bool
переменные будут ложными по умолчанию, и все числовые значения c, такие как int
uint
, double
et c, будут равны 0. Но, конечно, кто-то мог установить его полностью осведомленным об этих значениях .
Значение по умолчанию любого типа можно получить с помощью следующего:
int x = default(int); // will be 0
string y = default(y); // will be null
bool z = default(bool); // will be false;
ADDENDUM: Совершенно другим подходом будет следующий:
public class User{
public int Oid{ get; set; }
public string Name{ get; set; }
private string test;
public string Test
{
get { return test; }
set {test = value; IsTestSet = true; }
}
public bool IsTestSet {get; private set;}
}
С помощью этого кода вы можете проверить свойство IsTestSet
, чтобы определить, вызывался ли сеттер хотя бы один раз.