gpt4 book ai didi

c# - 通过公共(public)访问器访问本地私有(private)变量是一种错误的形式吗?

转载 作者:行者123 更新时间:2023-11-30 19:22:45 25 4
gpt4 key购买 nike

我正在开发一个多线程应用程序。我正在处理报告并跟踪当前批处理中的报告数量以及已处理的报告总数。每当我更新计数器时,我还需要更新 GUI 上的标签,因为进程在单独的线程上,所以需要调用委托(delegate)。哪一个是更好的方法?

private void UpdateTotalCount(int newValue)
{
totalCount = newValue;
if (labelTotalCount.InvokeRequired)
BeginInvoke((MethodInvoker) delegate() {
labelTotalCount.Text = "Total reports:" + totalcount; });
else
labelTotalCount.Text = "Total reports:" + totalcount;
}

private int totalCount;
public int TotalCount
{
get { return totalCount; }
set {
totalCount = value;
if (labelTotalCount.InvokeRequired)
BeginInvoke((MethodInvoker) delegate() {
labelTotalCount.Text = "Total reports:" + totalcount; });
else
labelTotalCount.Text = "Total reports:" + totalcount;
}
}

编辑:好的,第三个选项。


private void UpdateTotalCountLabel()
{
if (labelTotalCount.InvokeRequired)
BeginInvoke((MethodInvoker) delegate() {
labelTotalCount.Text = "Total reports:" + totalcount; });
else
labelTotalCount.Text = "Total reports:" + totalcount;
}
// code elsewhere would look like this
totalCount++;
UpdateTotalCountLabel();
//or
totalCount+= curBatch.Length;
UpdateTotalCountLabel();

最佳答案

我认为使用公共(public)访问器更好,因为它允许编写更多可维护代码,以防日后您需要更改总值的计算方式。这样,TotalValue 属性的用户就无需担心您的更改,因为这些更改不会以任何方式影响他们的代码。

关于c# - 通过公共(public)访问器访问本地私有(private)变量是一种错误的形式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/630249/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com