using System.Collections.Generic;
enum UserPermission { Permission1, Permission2 }
bool HasPermission(UserPermission perm);
class NormalUser : IUserRole
private static readonly List<UserPermission> _permissions = new()
UserPermission.Permission1
public bool HasPermission(UserPermission perm)
return _permissions.Any(x => x == perm);
class Administrator : IUserRole
private static readonly List<UserPermission> _permissions = new()
UserPermission.Permission1,
UserPermission.Permission2
public bool HasPermission(UserPermission perm)
return _permissions.Any(x => x == perm);
public static void Main()
IUserRole role = new Administrator();
var hasPermission = role.HasPermission(UserPermission.Permission1);
Console.WriteLine($"Has Permission: {hasPermission}");