この書き方の意味が分かりません。 C#でFileSystemWatcherを使用しているのですが、 サンプルコードで以下のようなものがありました。

ベストアンサー

0

ThanksImg質問者からのお礼コメント

解説ありがとうございました。 そもそもビット演算が分からなかったのですが、 以下のサイトが参考になりました。 https://programming.pc-note.net/csharp/bit2.html

お礼日時:3/2 18:36

その他の回答(3件)

0

NotifyFiltersはFlagsAttribute属性が付与されているEnum型です。 https://docs.microsoft.com/ja-jp/dotnet/api/system.io.notifyfilters?view=net-5.0 FlagsAttribute属性 https://docs.microsoft.com/ja-jp/dotnet/api/system.flagsattribute?view=net-5.0 > 論理演算子のorという意味だと思う 根拠が曖昧な思い込みをしてはいけません。プログラミングでは常に自分の思い込みに対して明確な裏付け(リファレンス等)を取ってください。 > これはどちらかがTrueだったらTrueの方が代入されるということでしょうか? いいえ。そもそも「どちらか」という話ではありません。NotifyFilters は FlagsAttribute属性が付いていることによって複数のフィールドを組み合わせた状態を作成することができます。 つまり、watcher.NotifyFilter は NotifyFilters.DirectoryName と NotifyFilters.FileName の両方を組み合わせた状態を持ちます。 この代入によって、ファイル名とディレクトリ名の両方を対象に監視するよう変更しています。それだけです。

0

そういう場合はMSの公式APIで調べます。ググると当たります。 https://docs.microsoft.com/ja-jp/dotnet/api/system.io.notifyfilters?view=net-5.0 上記ページには「この列挙体には FlagsAttribute 属性があり、そのメンバー値のビットごとの組み合わせが可能になります。」と説明されています。 定義をみると [System.Flags] public enum NotifyFilters となっていることがわかります。フラグ(ス)属性についても同様に調べると、以下のページに辿り着けます。 https://docs.microsoft.com/en-us/dotnet/api/system.flagsattribute?view=net-5.0 サンプルコードもふんだんに使われたわかりやすい説明があります。 このように調べていきます。