【发布时间】:2017-12-06 02:35:29
【问题描述】:
假设我在课堂上有私人领域。如果我告诉 Visual Studio 用属性封装该字段,它会为 get 和 set 访问器输出 lambda 表达式。
namespace MyNamespace
{
public class MyClass
{
private bool isActive;
//Auto-Generated Property
public bool IsActive
{
get => isActive;
set => isActive = value;
}
}
}
但我宁愿为每个访问器配备一对大括号。
namespace MyNamespace
{
public class MyClass
{
private bool isActive;
//Auto-Generated Property
public bool IsActive
{
get
{
return isActive;
}
set
{
isActive = value;
}
}
}
}
我怎样才能改变这种行为?我知道这里存在 sn-ps: “C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC#\Snippets\1033\Refactoring” 但我不知道如何改变它们以获得我想要的行为。
【问题讨论】:
-
这些不是 lambda。这只是一种用于声明属性的 getter 和 setter 的花哨的新语法。这很好。你应该想要它。
-
除了 VS 2017 是版本“15”。这些是错误的 sn-ps。
-
为什么还要有私有字段?让编译器完成工作:)
-
@MikeNakis 但是,如果我想在我的私有字段中更新值后调用我的设置器中的方法 - 比如“NotifyPropertyChanged()”?我不明白如何使用新语法来做到这一点。
-
@Mike z 我真傻。我知道有些事情没有加起来。
标签: c# visual-studio-2017