без дублирования свойства
void Main()
{
var client = new Client();
NullSafeSet("test", s => client.Name = s);
Debug.Assert(person.Name == "test");
NullSafeSet("", s => client.Name = s);
Debug.Assert(person.Name == "test");
NullSafeSet(null, s => client.Name = s);
Debug.Assert(person.Name == "test");
}
void NullSafeSet(string value, Action<string> setter)
{
if (!string.IsNullOrEmpty(value))
{
setter(value);
}
}
это - своего рода странный вопрос. можно ли применить ту же логику к чему-нибудь, как Вы создаете функцию приложения, так как приложение только развертывается как единственный объект. ответ был бы: используйте поток мерзавца или что-то сродни этому. Используйте ответвления функции и продвижения.