C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 149 を表示中)
■86903 / )  フラグを操作するジェネリックメソッドを作る方法
□投稿者/ MTK (32回)-(2018/04/02(Mon) 16:12:15)

分類:[C#] 

お世話になります。

クラスAの現在の状態を管理するため、管理用の変数を作ってフラグによるビット演算を行っています。
下記は現在の状態です



------------------  フラグデータクラス  ------------------

// クラスA用のフラグ
[Flags]
public enum FlagEnumA
{
  Zero = 0,

  Visible = 1,

  Enable = 1 << 1,

  Save = 1 << 2
}



------------------  フラグ操作クラス  ------------------

// 指定されたフラグを加算するメソッド
public static void AddFlag(ref FlagEnumA flag, FlagEnumA state)
{
  flag = flag | state;
}




この状態で、新たにクラスBの状態を管理する必要が出てきました。
そこでクラスB用の FlagEnumB を作り、フラグ操作クラスにある AddFlag メソッドをジェネリックにしようと考えています。
しかしこのままジェネリックにすると制約がないため flag = flag | state の部分でエラーが出てしまいます。
Whereを加えることで制約を付けることができるとあったのですが、この場合はどのような制約をかければ対応ができるのでしょうか?

返信 編集キー/


管理者用

- Child Tree -