event keyword

main
syneffort 2 years ago
parent 8469ced410
commit 63fe8e15d1
  1. 28
      BasicGramms/BasicGramms/BasicEvent.cs
  2. 1
      BasicGramms/BasicGramms/BasicGramms.csproj
  3. 7
      BasicGramms/BasicGramms/Program.cs

@ -10,7 +10,8 @@ namespace BasicGramms
internal class BasicEvent internal class BasicEvent
{ {
public event Handler EV; //public event Handler EV; // event 키워드가 없는 경우, 클래스 외부에서 함수 직접 호출이 가능하게됨. (OOP 위반)
public Handler EV;
public void DoTest() public void DoTest()
{ {
@ -25,9 +26,32 @@ namespace BasicGramms
EV($"Event message: {msg}"); EV($"Event message: {msg}");
} }
public void WriteConosle(string msg) private void WriteConosle(string msg)
{ {
Console.WriteLine(msg); Console.WriteLine(msg);
} }
} }
internal class BasicEventUser
{
private BasicEvent Basic = new BasicEvent();
public BasicEventUser()
{
this.Basic.EV += WriteConsole;
this.Basic.EV += WriteConsole;
this.Basic.EV += WriteConsole;
}
public void DoTest()
{
Basic.EV("Test done");
}
private void WriteConsole(string msg)
{
Console.WriteLine($"ByUser: {msg}");
}
}
} }

@ -44,6 +44,7 @@
<ItemGroup> <ItemGroup>
<Compile Include="BasicDelegate.cs" /> <Compile Include="BasicDelegate.cs" />
<Compile Include="BasicEvent.cs" /> <Compile Include="BasicEvent.cs" />
<Compile Include="BasicLambda.cs" />
<Compile Include="Program.cs" /> <Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup> </ItemGroup>

@ -13,8 +13,11 @@ namespace BasicGramms
//BasicDelegate del = new BasicDelegate(); //BasicDelegate del = new BasicDelegate();
//del.DoTest(); //del.DoTest();
BasicEvent evt = new BasicEvent(); //BasicEvent evt = new BasicEvent();
evt.DoTest(); //evt.DoTest();
BasicEventUser evtUser = new BasicEventUser();
evtUser.DoTest();
Console.ReadKey(); Console.ReadKey();
} }

Loading…
Cancel
Save