0

我正在处理一些突然停止运行的代码。我将问题追溯到 .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

4

0 回答 0