gpt4 book ai didi

c# - while 循环语法解释

转载 作者:行者123 更新时间:2023-11-30 20:28:04 24 4
gpt4 key购买 nike

正在阅读 this在研究 XSD 验证时。遇到了这段代码。

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 (reader.Read())
;

删除会出现错误“无效的表达式术语'}';预期”。

最佳答案

让我们看看documentation ,其中定义了 while 关键字:

while_statement
: 'while' '(' boolean_expression ')' embedded_statement
;

如您所见,while 语句必须以 ; 结尾。因此,如果 embedded_statement 为空,您将得到:

while (boolean_expression)
;

代替:

while (boolean_expression)
embedded_statement
;

embedded_statement 可以是一行表达式,如 Console.WriteLine(){ } 大括号中的一段代码:

while (boolean_expression)
{
embedded_statement
}
;

这里,;不是必须的,可以简单的写:

while (boolean_expression)
{
embedded_statement
}

关于c# - while 循环语法解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47862256/

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