В C # я пытаюсь «добавить» значения к параметру, который принимает перечисляемые флаги.Я могу сделать это в одной строке с помощью побитового оператора «|», но я не могу добавить параметр к циклу.
У меня следующий Enum указан как Flags.
[Flags]
public enum ProtectionOptions
{
NoPrevention = 0,
PreventEverything = 1,
PreventCopying = 2,
PreventPrinting = 4,
PrintOnlyLowResolution = 8
}
Теперь я могу легко использовать следующий код для добавления значений флагов к параметру:
myObj.Protection = ProtectionOptions.PreventEverything | ProtectionOptions.PrintOnlyLowResolution;
Но я хочу получить список параметров защиты из строки CSV (из Web.Config), переберите их и добавьте в мое свойство myObj.ProtectionOptions.Я не знаю, как сделать это в цикле без использования побитового ИЛИ "|"оператор.Вот что я хочу сделать:
string protectionOptionsString = "NoPrevention, PreventPrinting";
string[] protectionOptions = protectionOptionsString.Split(',');
foreach (string protectionOption in protectionOptions)
{
myObj.Protection += (ProtectionOptions) Enum.Parse(typeof (ProtectionOptions), protectionOption.Trim());
}
Концептуально это то, что я хочу, но я не могу "+ =" значения в цикле для параметра.