CSharp · Console
using System;
using System.Collections.Generic;
using System.Linq;
public class Program
{
enum UserPermission { Permission1, Permission2 }
interface IUserRole
{
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}");
}
}