본문 바로가기

#DevStudy/C#3

dynamic - C#과 Ironpython 연동 DLR (Dynamic Language Runtime)CLR은 IL로 컴파일 할 수 있는 언어들을 지원했지만 파이썬, 루비 같이 실행 과정에서 코드를 해석, 실행하는 동적 언어를 지원하지 못함.DLR은 CLR 위에서 동작하면서 파이썬, 루비 같은 동적 언어를 실행할 수 있도록 도와주는 플랫폼.동적 언어를 .NET 플랫폼에서 실행할 수 있는 것 뿐 아니라 C#, VB 같은 정적 언어에서 동적 언어의 코드를 통해 만들어진 객체에 접근 가능. 예제using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks; using Microsoft.Scripting;using Micro.. 2016. 5. 7.
foreach 객체 만들기 foreach 문은 IEnumerable, Enumerator 를 상속하는 형식만 지원한다. IEnumerable의 메소드 IEnumerator GetEnumerator() : IEnumerator 형식의 객체를 반환 IEnumerator의 메소드boolean MoveNext() : 다음 요소로 이동. 컬렉션 끝을 지난 경우에는 false, 이동이 성공한 경우에는 truevoid Reset() : 컬렉션 첫번째 위치의 앞으로 이동. (-1)Object Current { get; } : 컬렉션의 현재 요소 반환. class MyList : IEnumerable, IEnumerator{ private int[] array; int position = -1; public MyList(){ array = new.. 2016. 5. 2.
박싱과 언박싱 박싱(Boxing)object 형식은 참조 형식이기 때문에 힙에 데이터 할당.int나 double 형식은 값 형식이기 때문에 스택에 데이터 할당. object a = 20; 위와 같은 코드가 있다면20은 박싱되어 힙에 할당되고 a는 그 주소를 참조함. 언박싱(Unboxing)object a = 20;int b = (int) a; a가 20이 박싱되어 있는 힙을 참조하고 b는 a가 참조하고 있는 메모리의 값을 복사.이 때 그 값을 복사하기 위한 과정이 언박싱. 2016. 4. 28.