public ICommand ChangeLangCommand => new DelegateCommand(this.ChangeLangClick);
我收到此编译器错误,标记在=>
箭头上:
Error 1 ; expected
我是否以某种方式使用了错误的编译器版本?我怎么检查这个?
答案 0 :(得分:1)
这是一个名为 expression bodied property
的C# 6.0功能public ICommand ChangeLangCommand => new DelegateCommand(this.ChangeLangClick);
您可以升级编译器(安装最新版本的VS2015)或不使用它,因为它等同于仅具有getter的属性:
public ICommand ChangeLangCommand
{
get
{
return new DelegateCommand(this.ChangeLangClick);
}
}
我有一种感觉,每次访问属性时创建命令的新实例是错误的,正确的代码可能/将是
public ICommand ChangeLangCommand { get; }
// in constructor
ChangeLangCommand = new DelegateCommand(this.ChangeLangClick);
我认为这也是一个新功能(从构造函数初始化getter-only属性),如果这是真的,那么你可以使用较旧的语法:
ICommand _changeLangCommand;
public ICommand ChangeLangCommand
{
get
{
return _changeLangCommand;
}
}
// in constructor
_changeLangCommand = new DelegateCommand(this.ChangeLangClick);