Информация об изменениях

Сообщение Re[4]: Introducing C# Source Generators от 02.07.2020 8:38

Изменено 02.07.2020 8:41 Silver_S

Re[4]: Introducing C# Source Generators
Здравствуйте, Serginio1, Вы писали:

G>>>Ради эксперимента потратил пару дней чтобы попробовать сделать не только генерацию а возможность модификации исходного кода.


S_S>>А если бы в C# добавили ключевое слово, которое бы сообщало компилятору, что member или class надо отбросить(проигнорировать, не генерировать код) после того, как отработают все генераторы ? Типа комментариев, но с проверкой синтаксиса. А генераторы бы имели доступ. Это бы сильно упростило такое переписывание? Им ведь не сложно такое добавить. Слово, например : "gernerator","meta","$".


S>http://rsdn.org/forum/dotnet/7739320.1
Автор: Silver_S
Дата: 26.05.20


А если с телами методов надо что-то сделать, старые методы останутся, их бы выкинуть из кода.

Или такой пример у них. Здесь backing fields остаются. Только property добавляются.
// The view model we'd like to augment
    public partial class ExampleViewModel
    {
        [AutoNotify]
        private string _text = "private field text";

        [AutoNotify(PropertyName = "Count")]
        private int _amount = 5;
    }


Неплохо было бы так. В зависимости от атрибутов. Все это превращается либо readonly поля(инициализация через конструктор), либо в AutoNotiyProperty, либо в Record(data class), ... либо еще во что-то.
Сам этот шаблон уже будет не нужен в коде. Можно ему дать хитрое имя с подчеркиваниями, но лучше удалить.

[...]
$public class ExampleViewModel
    {
        public string Text= "private field text";
        public int Amount = 5;
    }


Очевидно, если будут generators, то захочется им передавать какой-то код, который нужен только им, потом его отбрасывать.
Re[4]: Introducing C# Source Generators
Здравствуйте, Serginio1, Вы писали:

G>>>Ради эксперимента потратил пару дней чтобы попробовать сделать не только генерацию а возможность модификации исходного кода.


S_S>>А если бы в C# добавили ключевое слово, которое бы сообщало компилятору, что member или class надо отбросить(проигнорировать, не генерировать код) после того, как отработают все генераторы ? Типа комментариев, но с проверкой синтаксиса. А генераторы бы имели доступ. Это бы сильно упростило такое переписывание? Им ведь не сложно такое добавить. Слово, например : "gernerator","meta","$".


S>http://rsdn.org/forum/dotnet/7739320.1
Автор: Silver_S
Дата: 26.05.20


А если с телами методов надо что-то сделать, старые методы останутся, их бы выкинуть из кода.

Или такой пример у них. Здесь backing fields остаются. Только property добавляются.
// The view model we'd like to augment
    public partial class ExampleViewModel
    {
        [AutoNotify]
        private string _text = "private field text";

        [AutoNotify(PropertyName = "Count")]
        private int _amount = 5;
    }


Неплохо было бы так. В зависимости от атрибутов. Все это превращается либо в readonly поля(инициализация через конструктор), либо в AutoNotiyProperty, либо в Record(data class), ... либо еще во что-то.
Сам этот шаблон уже будет не нужен в коде. Можно ему дать хитрое имя с подчеркиваниями, но лучше удалить.

[...]
$public class ExampleViewModel
{
    public string Text= "private field text";
    public int Amount = 5;
}


Очевидно, если будут generators, то захочется им передавать какой-то код, который нужен только им, потом его отбрасывать.