我是c#的新手,这是一个非常基本的Windows窗体,可以找到一些Autocad变量。我只是想弄清楚它给我的原因;在我所有的“if”陈述之后。它必须是非常简单的......或者我接近它是错误的。
请注意,我在每个结尾处尝试使用和不使用分号,我仍然会收到错误。
private void doneButton_Click(object sender, EventArgs e)
{
int findValue = 0;
//int none = 0;
//int clearAll = 1024;
int endpoint = 1;
int midpoint = 2;
int center = 4;
int node = 8;
int quadrant = 16;
int intersection = 32;
int insertion = 64;
int perpendicular = 128;
int tangent = 256;
int nearest = 512;
int apparentIntersection = 2048;
int extension = 4096;
int parallel = 8192;
if (cbxEndpoint.Checked) {findValue += endpoint};
if (cbxMidpoint.Checked){findValue += midpoint};
if (cbxCenter.Checked){findValue += center};
if (cbxNode.Checked){findValue += node};
if (cbxQuadrant.Checked){findValue += quadrant};
if (cbxIntersection.Checked){findValue += intersection};
if (cbxInsertion.Checked){findValue += insertion};
if (cbxPerpendicular.Checked){findValue += perpendicular};
if (cbxTangent.Checked){findValue += tangent};
if (cbxNearest.Checked){findValue += nearest};
if (cbxApparent.Checked){findValue += apparentIntersection};
if (cbxExtension.Checked){findValue += extension};
if (cbxParallel.Checked){findValue += parallel};
if (cbxNone.Checked){findValue = 0};
System.IO.StreamWriter file = new System.IO.StreamWriter(@"N:\C3D Support\MySettings.txt");
file.WriteLine("OSNAPS," + findValue);
file.Close();
Environment.Exit(0);
}
答案 0 :(得分:3)
你应该像这样使用它
if (cbxEndpoint.Checked) {findValue += endpoint;}
每行代码后括号内的分号。 if块不需要用分号结束。
作为替代方案,因为你的if是一行,所以可以不带括号编写:
if (cbxEndpoint.Checked) findValue += endpoint;
仅当if为true时,如果要执行多行代码,则仅需要括号。 我在编写代码时更喜欢这种格式:
if (cbxEndpoint.Checked)
{
findValue += endpoint;
}
或
if (cbxEndpoint.Checked)
findValue += endpoint;
答案 1 :(得分:1)
大括号之间的语句需要以分号结尾。不是'if'语句本身。
您的代码将更具可读性,如果您将每个语句放在一个新行上,您可以更轻松地找到这些错误,如下所示:
if (cbxEndpoint.Checked)
{
findValue += endpoint
}
现在问题很明显了。
答案 2 :(得分:0)
如果错误显示在'if'关键字下,请确保检查以上语句以分号结尾。