在C#中使用| =运算符时会发生什么?

elu*_*id8 4 .net c# operators assignment-operator

如果我使用这样的东西:

xr.Settings.ValidationFlags |= XmlSchemaValidationFlags.ReportValidationWarnings;
Run Code Online (Sandbox Code Playgroud)

究竟是什么|=完成的?

dri*_*iis 13

|= 是将两个值进行OR运算并将结果分配给第一个变量的快捷方式.

xr.Settings.ValidationFlags |= XmlSchemaValidationFlags.ReportValidationWarnings;
Run Code Online (Sandbox Code Playgroud)

相当于:

xr.Settings.ValidationFlags = xr.Settings.ValidationFlags | XmlSchemaValidationFlags.ReportValidationWarnings;
Run Code Online (Sandbox Code Playgroud)

|是C#中的OR运算符,因此上面的代码有效地设置ReportValidationWarnings了值的标志xr.Settings.ValidationFlags.

  • `|`表示"OR"; 如果任一参数为true,则结果为true.在这种情况下,它是一个按位"OR",这意味着如果任一参数中的任何位为1,则它保持为1. (2认同)