c#中类中属性的最佳语法
本文关键字:最佳 语法 属性 | 更新日期: 2023-09-27 18:04:35
我是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"); }
}
}
}
好像要打很多字,又长又乱。是否有一种方法来调用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");)}
}
}
感谢你们提供的任何帮助!
不行,不行。
你要么有一个像这样的基本属性:
public int MachineID { get; set; }
或者你有一个带有显式支持字段的完整属性:
private int _MachineID;
public int MachineID
{
get { return _MachineID; }
set
{
_MachineID = value;
OnNotifyPropertyChanged("MachineID");
}
}
没有办法编写更少的代码来实现它。
为了节省时间和避免手写代码,您可以在Visual Studio中使用适当的代码片段。
实现INotifyPropertyChanged(可能通过您的BaseModel类)的主要原因是您将在模型对象属性上使用GUI的对象。这样,当你的模型对象属性改变时,GUI控件将会自我更新。
我发现用INotifyPropertyChanged做一个带有支持字段和通知的属性的最好方法是使用Resharper(在那里你也会有很多其他有用的优点)并遵循Nico收据。如果你遵循这一点,你将节省大量的时间和重复性工作的精力。它需要一些时间来设置,但之后你会节省很多。好运!