• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

While循环语法说明

c/c++ 来源:Akshatha 6次浏览

在研究XSD验证时通过this进行了读取。遇到这段代码。While循环语法说明

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()) 
     ; 

删除给出错误“Invalid expression term '}' ; expected”。


===========解决方案如下:

我们来看看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 
} 

版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)