git_bsmd/AIS/bsmd.AIS2Service/Util.cs

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));
}
}
}