我正在处理一些突然停止运行的代码。我将问题追溯到 .NET 4 中的 CallerMemberName 功能
似乎它刚刚停止工作,[CallerMemberName] String propertyName = "" 返回 "",即使它是从属性 "speed" 调用的。它以前工作正常,我检查了该项目的目标是“.NET Framework 4”。知道是什么原因造成的吗?
物业代号:
public double speed
{
get { return _speed; }
set
{
_speed = value;
NotifyPropertyChanged();
}
}
并在这里处理:
//events
public event PropertyChangedEventHandler PropertyChanged;
public void NotifyPropertyChanged([CallerMemberName] String propertyName = "")
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
void RealTimeDashboard_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
switch (e.PropertyName)
{
case "speed":
NotifyPropertyChanged("speedDescription");
CalculateEfficency();
CheckEfficentConfigurations();
break;
}
}
编辑:安装了 Microsoft BCL Portability Pack,它的行为相同,但带有以下警告:
警告 10 'D:\Projects...MainWindow.xaml.cs' 中的类型 'System.Runtime.CompilerServices.CallerMemberNameAttribute' 与 'd:\Projects.. .\packages\Microsoft.Bcl.1.1.10\lib\net40\System.Runtime.dll'。使用“D:\Projects....\MainWindow.xaml.cs”中定义的类型。D:\Projects...AnOtherClass.xaml.cs