diff --git a/BasicGramms/BasicGramms.sln b/BasicGramms/BasicGramms.sln
new file mode 100644
index 0000000..3e18686
--- /dev/null
+++ b/BasicGramms/BasicGramms.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.3.32929.385
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BasicGramms", "BasicGramms\BasicGramms.csproj", "{05D6D9FB-B7F3-46DF-B3FE-65D1246F977C}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {05D6D9FB-B7F3-46DF-B3FE-65D1246F977C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {05D6D9FB-B7F3-46DF-B3FE-65D1246F977C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {05D6D9FB-B7F3-46DF-B3FE-65D1246F977C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {05D6D9FB-B7F3-46DF-B3FE-65D1246F977C}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {BBA9568B-D705-412E-8C14-D3E0405C1B2F}
+ EndGlobalSection
+EndGlobal
diff --git a/BasicGramms/BasicGramms/App.config b/BasicGramms/BasicGramms/App.config
new file mode 100644
index 0000000..8e15646
--- /dev/null
+++ b/BasicGramms/BasicGramms/App.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/BasicGramms/BasicGramms/BasicDelegate.cs b/BasicGramms/BasicGramms/BasicDelegate.cs
new file mode 100644
index 0000000..03e118d
--- /dev/null
+++ b/BasicGramms/BasicGramms/BasicDelegate.cs
@@ -0,0 +1,68 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace BasicGramms
+{
+ public delegate string ConcatMsg(string str, int num);
+ public delegate void DelegateMethod();
+ public delegate void DelegateCallback(string str);
+ public delegate int DelegateMultiply(int x, int y);
+ internal class BasicDelegate
+ {
+ public void DoTest()
+ {
+ ConcatMsg concatMsg = new ConcatMsg(Msg);
+
+ Console.WriteLine(concatMsg("Huffman", 45));
+
+ DelegateMethod delegateMethod = Msg1;
+ delegateMethod += Msg2;
+ delegateMethod += Msg3;
+ delegateMethod -= Msg2;
+ delegateMethod();
+
+ DelegateCallback callback = Msg_Callback;
+ SumMethod(1, 6, callback);
+
+ DelegateMultiply delegateMultiply = delegate (int x, int y)
+ {
+ return x * y;
+ };
+ Console.WriteLine(delegateMultiply(5, 7));
+ }
+
+ public string Msg(string str, int num)
+ {
+ return $"Name: {str}, Age: {num}";
+ }
+
+ public void Msg1()
+ {
+ Console.WriteLine("1");
+ }
+
+ public void Msg2()
+ {
+ Console.WriteLine("2");
+ }
+
+ public void Msg3()
+ {
+ Console.WriteLine("3");
+ }
+
+ public void Msg_Callback(string str)
+ {
+ Console.WriteLine(str);
+ }
+
+ public void SumMethod(int x, int y, DelegateCallback callback)
+ {
+ int sum = x + y;
+ callback($"Result: {sum}");
+ }
+ }
+}
diff --git a/BasicGramms/BasicGramms/BasicGramms.csproj b/BasicGramms/BasicGramms/BasicGramms.csproj
new file mode 100644
index 0000000..8ddb962
--- /dev/null
+++ b/BasicGramms/BasicGramms/BasicGramms.csproj
@@ -0,0 +1,53 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {05D6D9FB-B7F3-46DF-B3FE-65D1246F977C}
+ Exe
+ BasicGramms
+ BasicGramms
+ v4.5
+ 512
+ true
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/BasicGramms/BasicGramms/Program.cs b/BasicGramms/BasicGramms/Program.cs
new file mode 100644
index 0000000..2d79c37
--- /dev/null
+++ b/BasicGramms/BasicGramms/Program.cs
@@ -0,0 +1,19 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace BasicGramms
+{
+ internal class Program
+ {
+ static void Main(string[] args)
+ {
+ BasicDelegate test = new BasicDelegate();
+ test.DoTest();
+
+ Console.ReadKey();
+ }
+ }
+}
diff --git a/BasicGramms/BasicGramms/Properties/AssemblyInfo.cs b/BasicGramms/BasicGramms/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..29d714a
--- /dev/null
+++ b/BasicGramms/BasicGramms/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해
+// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면
+// 이러한 특성 값을 변경하세요.
+[assembly: AssemblyTitle("BasicGramms")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("BasicGramms")]
+[assembly: AssemblyCopyright("Copyright © 2023")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에
+// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면
+// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요.
+[assembly: ComVisible(false)]
+
+// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다.
+[assembly: Guid("05d6d9fb-b7f3-46df-b3fe-65d1246f977c")]
+
+// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다.
+//
+// 주 버전
+// 부 버전
+// 빌드 번호
+// 수정 버전
+//
+// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를
+// 기본값으로 할 수 있습니다.
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]