gpt4 book ai didi

c# - 将自动属性转换为完整属性

转载 作者:可可西里 更新时间:2023-11-01 08:42:29 24 4
gpt4 key购买 nike

我经常需要将自动属性转换为具有支持字段的完整属性,以便我可以实现 INotifyPropertyChanged。当一个类具有 50 多个属性时,它会变得非常乏味。

public string MyProperty { get; set;}

private string _myProperty;
public string MyProperty
{
get
{
return _myProperty;
}
set
{
_myProperty = value;
OnPropertyChanged("MyProperty");
}
}

我能够创建一个代码片段,以上述格式创建一个新属性,但我不知道是否可以提取现有属性的名称和类型并替换它。

我看到了kindofmagic但我真的不想在我的项目中使用神秘魔法。

This question解释了如何在 Resharper 中执行此操作,但我没有 Resharper。我什至下载了试用版,但仍然不知道如何操作。

有没有什么方法可以使用代码片段、宏甚至免费扩展来做到这一点?看起来应该相当简单。

最佳答案

如果你有 Notepad++ ,你可以通过正则表达式来完成(非常丑陋,但有效)

查找内容:(public)\s+([a-zA-z0-9]+)\s+([a-zA-z0-9]+)\s*\{\s*+get ;\s*set;\s*\}

替换为:private\2 _\3\;\r\n\1\2\3\r\n\{\r\n 得到\{ return _\3\;\}\r\n 设置\{ _\3=值\; OnPropertyChanged\(\"\3\"\)\;\}\r\n\}

确保选中“正则表达式”

这是查找/替换屏幕的样子: FindReplaceImg

它来自

StartImg

收件人:

EndImg

编辑:感谢 Britton,这是 Visual Studio 的等价物:

查找:public[^\S\r\n](.+)[^\S\r\n](\b(_\w+|[\w-[0-9_]]\w*)\b)[^\S\r\n]{[^\S\r\n]get;[‌ ^\S\r\n]set;[^\S\r\n]}

替换:private $1 _$2;\r\npublic $1 $2 {\r\nget\r\n{\r\nreturn _$2;\r\n}\r\nset\r\n{\r\n_$2 = 值(value); OnPropertyChanged("$2");\r\n}\r\n}

关于c# - 将自动属性转换为完整属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23368547/

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