コード例 #1
0
        public void T01_Flags_02_Remove()
        {
            TestHelpers.CatchUnexpected(() => {
                TestEnum t = TestEnum.Four | TestEnum.Eight | TestEnum.Two;
                Assert.True(t.HasFlag(TestEnum.None));
                Assert.True(t.HasFlag(TestEnum.Four));
                Assert.True(t.HasFlag(TestEnum.Eight));
                Assert.True(t.HasFlag(TestEnum.Two));

                t = t.RemoveFlag(TestEnum.Eight);
                t = t.RemoveFlag(TestEnum.Four);
                Assert.True(t.HasFlag(TestEnum.None));
                Assert.False(t.HasFlag(TestEnum.Four));
                Assert.False(t.HasFlag(TestEnum.Eight));
                Assert.True(t.HasFlag(TestEnum.Two));
                t = t.RemoveFlag(TestEnum.Two);
                Assert.False(t.HasFlag(TestEnum.Two));
                t = t.RemoveFlag(TestEnum.None);
                // None is 0 so it will always be there even if you call remove
                Assert.True(t.HasFlag(TestEnum.None));
            });
        }