gpt4 book ai didi

c# - 我可以使用 Roslyn 进行编译时代码重写吗?

转载 作者:可可西里 更新时间:2023-11-01 03:09:09 25 4
gpt4 key购买 nike

比如我有

class Foo: INotifyPropertyChanged {
public event PropertyChangedEventHandler PropertyChanged;
public int Bar {get;set;}
}

我可以获取 Foo 类 AST 并在编译时将 Bar 重写为

    public string Bar
{
get { return this.bar; }

set
{
if (value != this.bar)
{
this.phoneNumberValue = value;
PropertyChanged(this, new PropertyChangedEventArgs("Bar"));
}
}
}

.

最佳答案

如今 Roslyn 不直接支持编译时重写,但句法和语义转换绝对支持。事实上,查看 CTP 中包含的“ImplementNotifyPropertyChanged”示例,了解您想要执行的操作。该示例作为 IDE 功能中的设计时转换实现,但您可以提取逻辑并将其制作成类似预构建任务的东西,在编译前重写文件。

关于c# - 我可以使用 Roslyn 进行编译时代码重写吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7833954/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com