2016-09-29 3 views
0

Я пытаюсь выяснить, если свойство является автоматическим свойство, т.е. public int Foo { get; set; }Определить, если свойство является автоматическим свойством

уставился на некоторое время в PropertyDeclarationSyntax и IPropertySymbol, но ничего не нашло.

Угадайте, что альтернатива - это метод расширения, который оценивает, если get & set не содержит каких-либо заявлений, но это не очень элегантно.

+2

Ну, технически говоря, автоматических свойств нет. Это синтаксический сахар, который компилятор превращается в неявное поле. – Abion47

ответ

2

Проверьте, не имеет ли какой-либо из AccessorDeclarationSyntax es в PropertyDeclarationSyntaxAccessorList есть нуль Body.

Вы можете увидеть это, просмотрев любую декларацию свойств с помощью синтаксиса Visualizer (из расширения Roslyn SDK).

+2

Новое свойство: 'ExpressionBody'. Если он назначен, 'Body' имеет значение null, но свойство не является« авто-собственностью ». – Logerfo

Смежные вопросы