안녕하세요. 구스입니다. 요새 C#을 다시 재정리 하는 김에 관련 내용을 계속 업데이트 하네요. 오늘은 특정 클래스의 타입을 알아보는 방법에 대해서 이야기 해볼까 하는데요. 특정 어셈블리에서 보유하고 있는 타입의 상세 정보를 알기 위해서는 어떻게 해야 할까요? 예를 한번 생각해봅시다. Employee라는 클래스가 있다고 가정을 해봅시다. 특정 어셈블리 A에서 어셈블리 B에 포함되어 있는 Employee의 Instance(인스턴스)를 사용하고 있습니다. 개발자는 이러한 Instance를 사용하기 위해서는 어셈블리 B를 가져와야 하며(Load), 이를 통해서 Employee 클래스가 가지고 있는 멤버, 함수, 속성등을 사용할 수 있습니다. 또한 Employee 클래스를 생성하여 Instance화 한뒤 이에 ..
이 글에서는 C#에서 선언할 수 있는 명시적선언과 암시적선언에 대해서 알아보도록 하겠습니다. 명시적선언은 Explicit라는 용어를 많이들 쓰고, 암시적선언은 Implicit라는 말을 많이 씁니다. 이 두가지 선언 방법의 차이는 바로 변수 선언시 타입을 같이 선언하느냐 하지 않느냐인데요. Explicit : 변수의 타입을 지정하지 않고 var라는 타입을 통해서 선언합니다.Implicit : 변수의 타입을 지정해야 합니다. .NET에서 또한 Explicit와 Implicit 모두 지원을 하고 있습니다.간단히 int형의 데이터 타입 변수를 선언하고자 한다면 사용자는 아래와 같이 변수를 선언할 수 있습니다. int i = 0; //명시적 선언(Explicit) 하지만 var라는 명령어를 통해서도 C#에서는 변..
닷넷 런타임은 다른 머신으로부터의 악의적인 코드가 침투할 수 없도록 만들어져있습니다. 그 이유는 CLR을 기반으로 보안 사항을 유지하게 끔 설계가 되어 있기 때문이죠. 하지만 분산 시스템에서는 다른 머신으로 부터 코드를 다운로드 받아서 프로그램의 기능이 수행되야 하는 경우가 있는데, 이러한 경우 보안에 문제가 생길 수도 있습니다. 따라서 인터넷 혹은 웹에서 수행되는 경우 CLR의 제한된 환경내에서 처리가 되어야 합니다. 특정 어셈블리가 Full Trust의 조건에 만족하지 않는다면 CLR이 이 어셈블리를 처리할 때 모든 기능이 되지 않을 수도 있습니다. 이것을 C#에서는 Code Access Security(CAS)라고 합니다. CLR은 롤 기반의 보안(Role-Based Security)를 적용하고 있..
안녕하세요. 이번 글에서는 C#의 반복문 처리 시간에 대한 효율성을 이야기 해볼까해요. C#을 효율적으로 사용하다 보면 점점 나은 생산성이 높은 코드를 개발할 수 있습니다. C#을 공부하다 보면, For문보다 Foreach가 사용하기 더 쉽다는 장점을 가지고 있습니다. Foreach 문은 Collection 기반의 변수의 값들을 순차적으로 접근할 수 있다는 이점을 가지고 있죠. 그래서 많은 분들이 Foreach를 많이 쓰고 있습니다. Foreach가 더 빠르게 처리된다고 생각하는 분들도 있구요. 그럼 코드를 통해서 For 구문과 Foreach 구문 중 어떤 구문이 효율적인지 판단해볼까요.코드는 아래와 같습니다. class Program { static void Main(string[] args) { //..
NI Scope를 이용하여 .NET Framework에서 사용하고자는 분들이 많아서 관련 내용을 정리해봅니다. 기본적으로 NI Scope는 LabVIEW, CVI/LabWindows, VB에서 사용할 수 있는 라이브러리를 제공하고 있습니다. 기본적으로는 C#은 제공을 하고 있지 않죠. 따라서 NI Scope 라이브러리를 설치할 때 .NET Framework에 대한 내용을 설치할 수 없습니다. 하지만 NI Scope 4.1 이후 버전부터 추가적으로 라이브러리를 지원하고 있기에, 이 드라이브를 설치하게 되면 .NET 에서도 Scope에 대한 프로그래밍이 가능해집니다. 본 드라이버는 IVI driver-compliant .NET Class Library를 통해서 Scope에 대한 .NET Framework 개..