diff --git a/BitMaskTest/.vscode/launch.json b/BitMaskTest/.vscode/launch.json
new file mode 100644
index 0000000..c56e81d
--- /dev/null
+++ b/BitMaskTest/.vscode/launch.json
@@ -0,0 +1,24 @@
+{
+ // IntelliSense를 사용하여 가능한 특성에 대해 알아보세요.
+ // 기존 특성에 대한 설명을 보려면 가리킵니다.
+ // 자세한 내용을 보려면 https://go.microsoft.com/fwlink/?linkid=830387을(를) 방문하세요.
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "name": ".NET Core Launch (console)",
+ "type": "coreclr",
+ "request": "launch",
+ "preLaunchTask": "build",
+ "program": "${workspaceFolder}/bin/Debug/net7.0/BitMaskTest.dll",
+ "args": [],
+ "cwd": "${workspaceFolder}",
+ "console": "internalConsole",
+ "stopAtEntry": false
+ },
+ {
+ "name": ".NET Core Attach",
+ "type": "coreclr",
+ "request": "attach"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/BitMaskTest/.vscode/tasks.json b/BitMaskTest/.vscode/tasks.json
new file mode 100644
index 0000000..ef008cf
--- /dev/null
+++ b/BitMaskTest/.vscode/tasks.json
@@ -0,0 +1,41 @@
+{
+ "version": "2.0.0",
+ "tasks": [
+ {
+ "label": "build",
+ "command": "dotnet",
+ "type": "process",
+ "args": [
+ "build",
+ "${workspaceFolder}/BitMaskTest.csproj",
+ "/property:GenerateFullPaths=true",
+ "/consoleloggerparameters:NoSummary"
+ ],
+ "problemMatcher": "$msCompile"
+ },
+ {
+ "label": "publish",
+ "command": "dotnet",
+ "type": "process",
+ "args": [
+ "publish",
+ "${workspaceFolder}/BitMaskTest.csproj",
+ "/property:GenerateFullPaths=true",
+ "/consoleloggerparameters:NoSummary"
+ ],
+ "problemMatcher": "$msCompile"
+ },
+ {
+ "label": "watch",
+ "command": "dotnet",
+ "type": "process",
+ "args": [
+ "watch",
+ "run",
+ "--project",
+ "${workspaceFolder}/BitMaskTest.csproj"
+ ],
+ "problemMatcher": "$msCompile"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/BitMaskTest/BitMaskTest.csproj b/BitMaskTest/BitMaskTest.csproj
index c73e0d1..120e38c 100644
--- a/BitMaskTest/BitMaskTest.csproj
+++ b/BitMaskTest/BitMaskTest.csproj
@@ -2,7 +2,7 @@
Exe
- netcoreapp3.1
+ net7.0
diff --git a/BitMaskTest/PopupButtonMask.cs b/BitMaskTest/PopupButtonMask.cs
index 37db872..1b2eb7f 100644
--- a/BitMaskTest/PopupButtonMask.cs
+++ b/BitMaskTest/PopupButtonMask.cs
@@ -4,42 +4,55 @@ using System.Text;
namespace BitMaskTest
{
- [Flags]
- public enum ButtonMask
- {
- None = 0x00,
- Remove = 0x01,
- LevelUp = 0x02,
- Change = 0x04,
- Reset = 0x08,
- Cancel = 0x10,
- }
-
- class PopupButtonMask
- {
- public ButtonMask Mask { get; set; } = ButtonMask.None;
-
- public List GetButtons()
- {
- List buttons = new List();
- foreach (ButtonMask flag in Enum.GetValues(typeof(ButtonMask)))
- {
- if (checkMask(flag))
- buttons.Add(flag);
- }
-
- if (buttons == null || buttons.Count < 1)
- return null;
-
- return buttons;
- }
-
- private bool checkMask(ButtonMask compareTarget)
- {
- int flags = (int)this.Mask;
- int flag = (int)compareTarget;
-
- return (flags & flag) != 0;
- }
- }
+ // [Flags]
+ // public enum ButtonMask
+ // {
+ // None = 0x00,
+ // Remove = 0x01,
+ // LevelUp = 0x02,
+ // Change = 0x04,
+ // Reset = 0x08,
+ // Cancel = 0x10,
+ // }
+
+ [Flags]
+ public enum ButtonMask
+ {
+ None = 0,
+ Remove = 1 << 0,
+ LevelUp = 1 << 1,
+ Change = 1 << 2,
+ Reset = 1 << 3,
+ Cancel = 1 << 4,
+
+ All = int.MaxValue
+ }
+
+ class PopupButtonMask
+ {
+ public ButtonMask Mask { get; set; } = ButtonMask.None;
+
+ public List GetButtons()
+ {
+ List buttons = new List();
+ foreach (ButtonMask flag in Enum.GetValues(typeof(ButtonMask)))
+ {
+ if (checkMask(flag))
+ buttons.Add(flag);
+ }
+
+ if (buttons == null || buttons.Count < 1)
+ return null;
+
+ return buttons;
+ }
+
+ public bool checkMask(ButtonMask compareTarget)
+ {
+ int flags = (int)this.Mask;
+ int flag = (int)compareTarget;
+
+ return (flags & flag) != 0;
+ }
+ }
}
diff --git a/BitMaskTest/Program.cs b/BitMaskTest/Program.cs
index fa13804..3fa06a1 100644
--- a/BitMaskTest/Program.cs
+++ b/BitMaskTest/Program.cs
@@ -3,7 +3,7 @@ using System.Collections.Generic;
namespace BitMaskTest
{
- /*
+ /*
* AND &: 비트가 모두 1일 때 1 반환
* 1011 & 1001 = 1001
*
@@ -20,20 +20,20 @@ namespace BitMaskTest
* 001011 << 2 = 101100
* 001011 >> 2 = 000010
*/
- class Program
- {
- static void Main(string[] args)
- {
- PopupButtonMask popupButton = new PopupButtonMask();
- popupButton.Mask = ButtonMask.LevelUp | ButtonMask.Reset | ButtonMask.Cancel | ButtonMask.Remove | ButtonMask.Change;
+ class Program
+ {
+ static void Main(string[] args)
+ {
+ PopupButtonMask popupButton = new PopupButtonMask();
+ popupButton.Mask = ButtonMask.LevelUp | ButtonMask.Cancel | ButtonMask.Remove | ButtonMask.Change;
- List buttons = popupButton.GetButtons();
- foreach (ButtonMask item in buttons)
- {
- Console.WriteLine(item);
- }
+ System.Console.WriteLine(popupButton.checkMask(ButtonMask.All));
- Console.ReadKey();
- }
- }
+ // List buttons = popupButton.GetButtons();
+ // foreach (ButtonMask item in buttons)
+ // {
+ // Console.WriteLine(item);
+ // }
+ }
+ }
}