У меня есть следующий класс C# со свойством Id
, которое я хотел бы установить с помощью GUID и вернуть, если потребитель вызывает значение экземпляра myClass.Id, для которого это значение еще не установлено, но в противном случае для сохранения и возврата существующего значения.
public class IdentifiableClass{
public string Id {
get {
if (this.Id == null) {
this.Id = Guid.NewGuid().ToString();
Console.WriteLine("########## Id : " + this.Id );
}
return this.Id;
}
set => this.Id = value;
}
}
В C#, это не работает, а скорее Я получаю stackoverflow (очевидно, не этот сайт). Лучшее предположение, вызов this.Id в геттере того же свойства, кажется, приводит к циклическому logi c.
В Salesforce Apex , с этим аналогичным кодом, он работает ли так, как ожидал бы I , оценивая значение this.Id как null, присваивая значение новому Guid, отображая значение и затем возвращая значение:
public class IdentifiableClass {
public string Id {
get {
if (this.Id == null) {
this.Id = String.valueOf(Integer.valueof((Math.random() * 10)));
System.debug('########## Id : ' + this.Id );
}
return this.Id;
}
set;
}
}
- Можно ли сделать эту работу в C#?
- Если да, как ?