動くコード図鑑技術記事現場の渡り方キャリア論すべての記事About
C#

パターン3: [Flags]属性でビット組合せ

出典: C# Enum 完全ガイド — Description 属性 / [Flags] / 数値変換の使い分け5パターンパターン3: [Flags]属性でビット組合せ

パターン3: [Flags]属性でビット組合せ (csharp)#55cfcc401bc8
using System;
 
[Flags]
public enum Permission
{
    None = 0,
    Read = 1,            // 0001
    Write = 2,           // 0010
    Delete = 4,          // 0100
    Admin = 8,           // 1000
    ReadWrite = Read | Write,           // 0011
    All = Read | Write | Delete | Admin // 1111
}
 
class Program
{
    static void Main()
    {
        //複数権限をORで組み合わせ
        var userPermission = Permission.Read | Permission.Write;
 
        // HasFlagで権限チェック([Flags] 前提)
        if (userPermission.HasFlag(Permission.Read))
        {
            Console.WriteLine("読み取り権限あり");
        }
 
        //ビット演算で追加
        userPermission |= Permission.Delete;  // Read + Write + Delete
 
        //ビット演算で削除
        userPermission &= ~Permission.Write;  // Read + Delete
 
        // ToString()で人間可読表示([Flags] 前提)
        Console.WriteLine(userPermission);    // "Read, Delete"
    }
}
▸ 実行ボタンで結果を表示
  • id: #55cfcc401bc8
  • lines: 37
  • extracted: 2026-06-10
  • captured: 2026-06-04

Source収録記事

この snippet は記事の「パターン3: [Flags]属性でビット組合せ」セクションに登場する。コードの前後の文脈・ハマりどころの解説は記事本文で。

同じ記事から

7
図鑑トップ