C# 是否有办法实施针对VS2015变更的类似募捐财产?

C# 是否有办法实施针对VS2015变更的类似募捐财产?,c#,mvvm,C#,Mvvm,似乎我在VS2015中有以下代码的语法错误。 错误听起来像: 类型为“?”的值不能用作默认参数,因为 没有到类型“T”的标准转换 是否有办法在VS2015中实施类似的“募捐财产变更” public class ViewModel : ViewModelBase { // Property public const string SelectedItemPropertyName = "SelectedItem";

似乎我在VS2015中有以下代码的语法错误。 错误听起来像:

类型为“?”的值不能用作默认参数,因为 没有到类型“T”的标准转换

是否有办法在VS2015中实施类似的“募捐财产变更”

 public class ViewModel : ViewModelBase
    {

        // Property        
        public const string SelectedItemPropertyName = "SelectedItem";

        private int? _selectedItem;       
        public int? SelectedItem
        {
            get
            {
                return _selectedItem;
            }
            set
            {
                Set(SelectedItemPropertyName, ref _selectedItem, value);
            }
        }

        // Method
        private void Load()
        {
            int number = SelectedItem ?? -1;

            // do your work
        }


       // Raise property changed
        public override void RaisePropertyChanged<T>([CallerMemberName] string propertyName = null, T oldValue = default, T newValue = default, bool broadcast = false)
        {
            base.RaisePropertyChanged(propertyName, oldValue, newValue, broadcast);
            if (propertyName == nameof(SelectedItem))
                Load();
        }
    }


public类ViewModel:ViewModelBase
{
//财产
公共常量字符串SelectedItemPropertyName=“SelectedItem”;
私人int?\u选择编辑项;
public int?SelectedItem
{
得到
{
返回_selectedItem;
}
设置
{
Set(SelectedItemPropertyName,ref _selectedItem,value);
}
}
//方法
专用空心荷载()
{
整数=SelectedItem???-1;
//做你的工作
}
//提升属性已更改
public override void RaisePropertyChanged([CallerMemberName]string propertyName=null,T oldValue=default,T newValue=default,bool broadcast=false)
{
base.RaisePropertyChanged(propertyName、oldValue、newValue、broadcast);
if(propertyName==nameof(SelectedItem))
加载();
}
}

看起来您使用的是7.1下的C版本。在这种情况下,您需要使用
default(T)
,而不是简单地使用
default
。是指向默认值表达式的文档的链接。

能否包括
Set
base的实现。请将属性更改为RaisePropertyChanged
?没有它们,我们只能猜测它们是如何工作的。根据我目前的猜测,一切都很糟糕,我不完全理解你的意思。附带说明:我使用MVVMLight(最新版本)实现属性。这段代码在VS2019中运行良好。