【发布时间】:2020-06-03 11:59:12
【问题描述】:
我对 C# 很陌生,想知道处理通用数据的正确方法(不浪费任何资源)。
我有一个 BindingList 用于绑定 dataGridView.DataSource。
下面是更新数据值的示例代码:问题是将“计算代码”放在getter还是setter中更有效。
如果有一种被认为是“最佳实践”的方法,请也告诉我。
public class Data : INotifyPropertyChanged
{
private float number;
public string Code
{
get => Number; // get => Number / 100 which one is more efficient?
set { Number = value / 100; OnPropertyChanged(); }
}
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged([CallerMemberName] string name = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
}
}
... Data 类的使用方式如下:
public partial class Form1 : Form
{
private BindingList<Data> dataList = new BindingList<Data> { new Data { Code = "1" } };
protected override void OnHandleCreated(EventArgs e)
{
// When main form is ready to handle messages the binding happens.
base.OnHandleCreated(e);
myDataGridView.DataSource = dataList;
myDataGridView.Columns["Code"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
}
public Form1()
{
InitializeComponent();
}
}
【问题讨论】:
-
您的代码示例很有趣,因为它指出基础字段类型(在本例中为 float)并不总是与设置它的属性类型相同(在本例中string) 并且我们确实有时必须在 {get;设置;}
标签: c# datagridview getter-setter bindinglist