728x90
ExpandoObject 클래스
런타임(Run time)에 동적으로 추가 및 제거할 수 있는 멤버 개체.
→ 런타임?
- 네임스페이스
System.Dynamic
- 인스턴스 생성
dynamic 오브젝트명 = new ExpandoObject();
- 인스턴스에 속성, 메서드 및 이벤트 추가
속성, 메서드
using System;
using System.Dynamic;
dynamic Obj = new ExpandoObject();
Obj.prop = "New Property";
Console.WriteLine(Obj.prop); //New Property
Obj.thisYear = 2022;
Obj.Increment = (Action)(() => { Obj.thisYear++; });
Obj.Increment();
Console.WriteLine(Obj.thisYear); //2023
이벤트
using System;
using System.Dynamic;
class Program
{
static void Main(string[] args)
{
dynamic Obj = new ExpandoObject();
//이벤트 생성 및 초기화
Obj.newEvent = null;
//eventHandler
Obj.newEvent += new EventHandler(newHandler);
Obj.newEvent(Obj, new EventArgs());
}
static void newHandler(object sender, EventArgs e)
{
//출력: NewHandler for System.Dynamic.ExpandoObject event
Console.WriteLine("NewHandler for {0} event", sender);
}
}
→ EventHandler?
더보기
EventHandler
이벤트 데이터가 없는 이벤트를 처리할 메서드.
public delegate void EventHandler(object? sender EventArgs e);
- sender: 이벤트 소스(Object)
- e: 이벤트 데이터가 포함되지 않은 개체(EventArgs)
참고자료)
https://learn.microsoft.com/ko-kr/dotnet/api/system.dynamic.expandoobject?view=net-6.0
ExpandoObject 클래스 (System.Dynamic)
런타임에 동적으로 추가 및 제거할 수 있는 멤버가 있는 개체를 나타냅니다.
learn.microsoft.com
https://learn.microsoft.com/ko-kr/dotnet/api/system.eventhandler?view=net-6.0
EventHandler 대리자 (System)
이벤트 데이터가 없는 이벤트를 처리할 메서드를 나타냅니다.
learn.microsoft.com
728x90
반응형
'개발 공부 > C# 기초' 카테고리의 다른 글
[C# 기초] List 값 출력(for문, foreach문) (0) | 2022.11.22 |
---|---|
[C# 기초] 메서드 오버로딩(Method Overloading), 디폴트 매개변수(Default Parameter) (0) | 2022.10.18 |
[C# 기초] 컴파일(Compile), 런타임(Run time) (0) | 2022.10.14 |
[C# 기초] #region, #endregion (0) | 2022.10.14 |
[C# 기초] Dictionary(매개변수, 네임스페이스, 선언, foreach) (0) | 2022.10.13 |