【问题标题】:C#, Counting iterations for a complaint processC#,计算投诉流程的迭代次数
【发布时间】:2014-03-27 10:13:45
【问题描述】:

我必须创建一个程序来处理投诉我必须跟踪我完成了多少次流程,这意味着当我返回到流程中的第一个表单时我需要增加一个计数但是这个数字总是在打开第一个表单

runNum 设置为公共 int 这是我用于自动将数据输入到表单然后在打开下一个表单之前增加 runmber 的代码:

        private void autoFill()
        {
            TitlePage titlepage = new TitlePage();

            if (titlepage.getRun() == true)
            {
                int priority = runNum % 4;

                if (priority == 0)
                         priority = 2;

                txtDate.Text = DateTime.Today.ToString("dd/MM/yyyy");
                txtRef.Text = (100 + runNum).ToString();
                txtPriority.Text = priority.ToString();
                txtCustName.Text = firstNames[runNum] + " " + secondNames[runNum];
                txtCustAddress.Text = (runNum + 5).ToString() + " " + Address1[runNum] + " " + Address2[(runNum % 7)];
                txtCustEmail.Text = firstNames[runNum] + secondNames[runNum] + "@" + ISP[(runNum % 10)] + "." + Suff[(runNum % 10)];
                txtCustTel.Text = TelNo[runNum];               

                //TBD- fill this in with actual data  

                rtbComplaint.Text = "Complaint type,                         Sevarity,                         soultion exsiting,                         employee who dealt with complaint,                           Date";

                rtbComplaint.Enabled = false;
                txtPriority.Enabled = false;
                txtDate.Enabled = false;
                txtRef.Enabled = false;
                txtCustName.Enabled = false;
                txtCustName.Enabled = false;
                txtCustEmail.Enabled = false;
                txtCustAddress.Enabled = false;
                txtCustTel.Enabled = false;


                if (runNum % 2 == 0)
                {
                    rdoNo.Checked = true;
       enter code here         }
                else
                {
                    rdoYes.Checked = true;
                }



                getTimer();
                runNum++;
            }
        }

【问题讨论】:

  • 您好,欢迎来到 StackOverflow。就目前而言,您的帖子对问题的含义不是很清楚。还有相当多的代码。为了让人们更容易回答您的问题,请考虑将您的代码缩减为 Short, Self-contained, Compilable example
  • 我同意 dav_i。您希望 runNum 与访问应用程序的任何人相关,还是只与忙于迭代的用户相关?下一个问题是这是一个 Web 应用程序还是 Windows 应用程序,因为实现也会有很大不同。
  • 对不起,这是我第一次发帖给您带来的困惑,下次我会尝试带上您的 cmets =),Hano Johannes Rossouw soultion 帮助我解决了这个问题,但感谢您表现出兴趣

标签: c# iteration counting


【解决方案1】:

在这种情况下,公共 int 将始终被重置。如果您想要全局访问变量,您应该在父页面上声明一个静态 int。但是要避免使用全局变量。而是尝试将迭代保存在一个中心点,例如数据库或文件,您可以从中检索值,甚至使用服务器缓存对象,您可以更新并再次从中获取值。

【讨论】:

  • 谢谢你这已经解决了这个问题并避免使用我使用的全局变量;私有静态 TitlePage tm = new TitlePage();然后创建了一个返回 tm 的函数是你的意思吗?
  • 嗨。对于全局变量,我的意思是声明一个静态参数或一个常量静态参数。我的意思是一起避免这些类型的变量。您可以尝试将您的迭代值提交到数据库中,并尽可能在每次必要时检索和/或更新它。
【解决方案2】:

我会使用静态变量,但请注意,如果重新启动应用程序域或重新编译网页类,即使是静态变量也可以重置。

Lifetime of ASP.NET Static Variable

已编辑:对不起,我认为这个问题是针对 asp.net 应用程序的。不是这样吗?

如果它是一个普通的 windows 窗体,那么你需要将它存储在某个服务器端,无论是数据库、服务器上的共享文件还是类似的东西

【讨论】:

  • 是的,它基于 Windows,但是我正在编写的程序只是为了创建大量测试数据,这些数据反过来会为我提供测试另一个程序的数据,因此如果运行号返回到0 在我关闭程序后,因此无需存储号码以供以后使用,对不起,我应该在一开始就说明这一点,但是我现在解决了这个问题,谢谢您的回复
猜你喜欢
  • 1970-01-01
  • 2020-08-09
  • 2021-07-24
  • 2015-05-18
  • 1970-01-01
  • 2013-01-07
  • 1970-01-01
相关资源
最近更新 更多