コード例 #1
0
    /// <summary>
    /// Sammelt die Namen der in <paramref name="imppType"/> gesetzten Flags in
    /// <paramref name="list"/>. <paramref name="list"/> wird von der Methode nicht
    /// geleert.
    /// </summary>
    /// <param name="imppType"><see cref="ImppTypes"/>-Objekt oder <c>null</c>.</param>
    /// <param name="list">Eine Liste zum Sammeln.</param>
    internal static void CollectValueStrings(ImppTypes?imppType, List <string> list)
    {
        Debug.Assert(list != null);

        if (!imppType.HasValue)
        {
            return;
        }

        ImppTypes value = imppType.Value & ImppTypesConverter.DEFINED_IMPP_TYPES_VALUES;

        for (int i = ImppTypesConverter.ImppTypesMinBit; i <= ImppTypesConverter.ImppTypesMaxBit; i++)
        {
            ImppTypes flag = (ImppTypes)(1 << i);

            if (value.HasFlag(flag))
            {
                list.Add(flag.ToVcfString());
            }
        }
    }
コード例 #2
0
 public static bool IsSet(this ImppTypes?value, ImppTypes flags) => (value & flags) == flags;
コード例 #3
0
    public static ImppTypes?Unset(this ImppTypes?value, ImppTypes flags)
    {
        value &= ~flags;

        return(value == (ImppTypes)0 ? null : value);
    }
コード例 #4
0
 public static ImppTypes?Set(this ImppTypes?value, ImppTypes flags) => value.HasValue ? (value.Value | flags) : flags;