c#中类的属性的最佳语法

Rya*_*atz 1 c# syntax class

我是C#编程的新手.我正在构建一些类并在教程中找到不同的示例.我还认为,为了保持WPF表单显示正确的值,您需要实现INotify.

所以我的问题是两个部分.我是否真的需要通知并在属性更改时触发自定义方法?

这是定义我班级的最佳系统吗?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Diagnostics;

namespace LakesideQTS
{
    public class Machine : BaseModel, IDataErrorInfo
    {
    private int _MachineID; 
    private string _Description;

    public int MachineID 
    {
        get { return _MachineID; }
        set { _MachineID = value; OnPropertyChanged1("MachineID"); }
    }
    public string Description 
    {
        get { return _Description; }
        set { _Description = value; OnPropertyChanged1("Description"); }
    }
    }
}
Run Code Online (Sandbox Code Playgroud)

这似乎很多打字,真的很长很乱.有没有办法用更新的语法样式调用OnPropertyChanged1()?像这样的东西:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Diagnostics;

namespace LakesideQTS
{
    public class Machine : BaseModel, IDataErrorInfo
    {

    public int MachineID {get;set; OnPropertyChanged1("MachineID");}
    public string Description {get;set; OnPropertyChanged1("MachineID");)}
    }
}
Run Code Online (Sandbox Code Playgroud)

感谢您和男士们提供的任何帮助!

ang*_*son 5

不,没有办法.

你有这样的准系统属性:

public int MachineID { get; set; }
Run Code Online (Sandbox Code Playgroud)

或者您拥有具有明确支持字段的完整属性:

private int _MachineID;
public int MachineID
{
    get { return _MachineID; }
    set
    {
        _MachineID = value;
        OnNotifyPropertyChanged("MachineID");
    }
}
Run Code Online (Sandbox Code Playgroud)

只有后一种语法才允许您执行除存储值之外的任何操作.