30 lines
855 B
C#
30 lines
855 B
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace bsmd.AIS2Service
|
|
{
|
|
public static class Util
|
|
{
|
|
/// <summary>
|
|
/// To test if flag is set please use framework method Enum.HasFlag()
|
|
/// </summary>
|
|
/// <typeparam name="T"></typeparam>
|
|
/// <param name="flags"></param>
|
|
/// <param name="flag"></param>
|
|
/// <param name="value"></param>
|
|
public static void Set<T>(ref T flags, T flag, bool value) where T : struct
|
|
{
|
|
int flagsValue = (int)(object)flags;
|
|
int flagValue = (int)(object)flag;
|
|
|
|
if(value)
|
|
flags = (T)(object)(flagsValue | flagValue);
|
|
else
|
|
flags = (T)(object)(flagsValue & (~flagValue));
|
|
}
|
|
}
|
|
}
|