C# While循环语法解释
在研究XSD验证时正在通读。我发现了这段代码C# While循环语法解释,c#,while-loop,xsd,C#,While Loop,Xsd,在研究XSD验证时正在通读。我发现了这段代码 private static IEnumerable<ValidationEventArgs> RunValidation(string inputXml, bool includeHelperSchema) { var schemaSet = new XmlSchemaSet(); schemaSet.Add(schemaUnderTest); if (includeHelperSchema) {
private static IEnumerable<ValidationEventArgs> RunValidation(string inputXml, bool includeHelperSchema)
{
var schemaSet = new XmlSchemaSet();
schemaSet.Add(schemaUnderTest);
if (includeHelperSchema)
{
schemaSet.Add(helperSchema);
}
var readerSettings = new XmlReaderSettings()
{
Schemas = schemaSet,
ValidationType = ValidationType.Schema,
ValidationFlags = XmlSchemaValidationFlags.ReportValidationWarnings,
};
var events = new List<ValidationEventArgs>();
readerSettings.ValidationEventHandler += (s, e) => { events.Add(e); };
using (var reader = XmlReader.Create(new StringReader(inputXml), readerSettings))
{
while (reader.Read())
;
}
return events;
}
删除会产生错误“
无效的表达式术语“}”;应为“
”将主体放入while循环
while(reader.Read()){
// your code there
}
分号只是使while循环不断计算reader.Read()
,直到返回false
写这篇文章的另一种方法是
var result = reader.Read()
while (result)
{
result = reader.Read();
}
让我们看一下,其中while
关键字定义:
while_statement
: 'while' '(' boolean_expression ')' embedded_statement
;
如您所见,while
语句必须以结尾代码>。因此,如果embedded_语句
为空,您将得到:
while (boolean_expression)
;
而不是:
while (boolean_expression)
embedded_statement
;
embedded_语句
可以是一行表达式,如Console.WriteLine()
或{}
大括号中的代码块:
while (boolean_expression)
{
embedded_statement
}
;
这里,代码>不是必需的,您可以编写简单的:
while (boolean_expression)
{
embedded_statement
}
请指出行。更新问题谢谢。我不知道必须以这种方式结束,因为我一直习惯于使用while(boolean_expression){embedded_statement}
+1用于提供的链接。
while (boolean_expression)
{
embedded_statement
}
;
while (boolean_expression)
{
embedded_statement
}