C# 将整数添加到标签以便于显示
如何添加整数,即用于显示的计数变量C# 将整数添加到标签以便于显示,c#,C#,如何添加整数,即用于显示的计数变量 int counter = 0; private void btnDisplay_Click(object sender, EventArgs e) { StreamReader myReader = new StreamReader("StudentRecords.txt"); while (myReader.EndOfStream == false) { strin
int counter = 0;
private void btnDisplay_Click(object sender, EventArgs e)
{
StreamReader myReader = new StreamReader("StudentRecords.txt");
while (myReader.EndOfStream == false)
{
string[] storageArray = myReader.ReadLine().Split('#');
if (storageArray[0] == "S")
{
lstDisplay.Items.Add("");
lstDisplay.Items.Add("Student Name: " + storageArray[1]);
lstDisplay.Items.Add("Student Number: " +storageArray[2]);
lstDisplay.Items.Add("Attendance: " + storageArray[5]);
lstDisplay.Items.Add("Modules: ");
counter++;
}
else if (storageArray[0] == "M")
{
lstDisplay.Items.Add(storageArray[1]);
}
}
//label to be used to display the number of students
lblnoOfStudents. ??
myReader.Close();
}
将邮件分配到标签的
文本属性:
lblnoOfStudents.Text = string.Format("Students: {0}", counter);
这会将标签上的文本更改为该数字。如果要将其附加到现有文本的末尾,请使用+=
:
lblnoOfStudents.Text += counter.ToString();
您可以使用标签
控件的属性。喜欢
获取或设置Label控件的文本内容
这将使用计数器变量的字符串表示形式更改标签文本。以下是代码的工作示例
//int counter = 0; may as well move inside as it looks to be localised
private void btnDisplay_Click(object sender, EventArgs e)
{
StreamReader myReader = new StreamReader("StudentRecords.txt");
int counter = 0;
while (myReader.EndOfStream == false)
{
string[] storageArray = myReader.ReadLine().Split('#');
if (storageArray[0] = "S")
{
lstDisplay.Items.Add("");
lstDisplay.Items.Add("Student Name: " + storageArray[1]);
lstDisplay.Items.Add("Student Number: " +storageArray[2]);
lstDisplay.Items.Add("Attendance: " + storageArray[5]);
lstDisplay.Items.Add("Modules: ");
counter++;
}
else if (storageArray[0] == "M")
{
lstDisplay.Items.Add(storageArray[1]);
}
}
//label to be used to display the number of students
lblnoOfStudents.Text = counter.ToString();
myReader.Close();
}
编辑:我觉得我应该改进我的答案,所以我想我应该改进你的代码
//int counter = 0; may as well move inside as it looks to be localised
private void btnDisplay_Click(object sender, EventArgs e)
{
using(StreamReader myReader = new StreamReader("StudentRecords.txt"))
{
int counter = 0;
while (!myReader.EndOfStream)
{
string[] storageArray = myReader.ReadLine().Split('#');
switch(storageArray[0])
{
case "S":
lstDisplay.Items.Add("");
lstDisplay.Items.Add("Student Name: " + storageArray[1]);
lstDisplay.Items.Add("Student Number: " +storageArray[2]);
lstDisplay.Items.Add("Attendance: " + storageArray[5]);
lstDisplay.Items.Add("Modules: ");
counter++;
break;
case "M":
lstDisplay.Items.Add(storageArray[1]);
break;
default:
break;
}
}
}
//label to be used to display the number of students
lblnoOfStudents.Text = counter.ToString();
}
}
- 使用将自动为您关闭读卡器
==false
为
冗余,因为您已经可以从
我是接线员
- switch语句将便于您添加
多个不同的选项,而不是长else if
作为旁注:string.Format
将{0}
替换为计数器
变量值,因此它将产生类似的结果,学生:1024
如果您想去掉类似的内容,请将CultureInfo.InvariantCulture
作为Format()
的第一个参数传递。这样你就不会得到1024
、1024
或类似的答案,而不是1024
。因为几分钟前已经给出了完全相同的答案。我仍然看不到相同的答案。我不仅在他的函数中移动了计数器,因为它似乎不需要在外部移动,我还提供了可以替换他的函数的代码。太好了,你刚才从问题到答案复制了很多不必要的代码!还是-我说了一句…很公平,我觉得我已经解释清楚了myself@Sayse,在建议提问者使用重构的代码之前,您应该测试重构的代码。删除==false
很好,但忘记添加“代码>运算符否定条件并中断代码。@AndreSmith-如果您两次单击“显示”按钮,则第二个将无法正常工作。不必担心,我使用了第一个…”。。。不管怎样,这就是我所需要的:)看看我编辑过的答案,安德烈,来学习一些其他可以改进功能的方法
//int counter = 0; may as well move inside as it looks to be localised
private void btnDisplay_Click(object sender, EventArgs e)
{
StreamReader myReader = new StreamReader("StudentRecords.txt");
int counter = 0;
while (myReader.EndOfStream == false)
{
string[] storageArray = myReader.ReadLine().Split('#');
if (storageArray[0] = "S")
{
lstDisplay.Items.Add("");
lstDisplay.Items.Add("Student Name: " + storageArray[1]);
lstDisplay.Items.Add("Student Number: " +storageArray[2]);
lstDisplay.Items.Add("Attendance: " + storageArray[5]);
lstDisplay.Items.Add("Modules: ");
counter++;
}
else if (storageArray[0] == "M")
{
lstDisplay.Items.Add(storageArray[1]);
}
}
//label to be used to display the number of students
lblnoOfStudents.Text = counter.ToString();
myReader.Close();
}
//int counter = 0; may as well move inside as it looks to be localised
private void btnDisplay_Click(object sender, EventArgs e)
{
using(StreamReader myReader = new StreamReader("StudentRecords.txt"))
{
int counter = 0;
while (!myReader.EndOfStream)
{
string[] storageArray = myReader.ReadLine().Split('#');
switch(storageArray[0])
{
case "S":
lstDisplay.Items.Add("");
lstDisplay.Items.Add("Student Name: " + storageArray[1]);
lstDisplay.Items.Add("Student Number: " +storageArray[2]);
lstDisplay.Items.Add("Attendance: " + storageArray[5]);
lstDisplay.Items.Add("Modules: ");
counter++;
break;
case "M":
lstDisplay.Items.Add(storageArray[1]);
break;
default:
break;
}
}
}
//label to be used to display the number of students
lblnoOfStudents.Text = counter.ToString();
}
}