본문 바로가기

c#5

예외 (Exception) - 2부 - 2007-02-14 : C# 에서 throw 시 StackTrace 를 초기화하지 않는 방법이 있어 이 부분을 추가했습니다. 예외 (Exception) - 2부 - 2006년 3월 28일 강현신 C++ 의 예외 처리 C++ 에서는 예외 발생을 묘사하기 위하여 throw 를, 예외 흐름을 묘사하기 위해 try ~ catch 블록을 사용하고 있다. 기본적인 표현 방식은, try 블록 안에 예외가 발생할 수 있을 가능성이 있는 주 흐름 명령어들을 위치시키고, catch 블록 안에 이러한 주 흐름에서 발생한 예외를 처리하는 예외 흐름을 기술한다. try 블록 안에 위치한 주 흐름은 많은 형태의 명령어로 기술될 수 있으므로, 발생할 수 있는 예외 또한 여러 가지 형태가 될 수 있다. C++ 은 catch 구문 뒤.. 2006. 3. 28.
.NET 의 델리게이트(delegate) 와 형 (type) ** 델리게이트의 개념 델리게이트에 대해 간단히 요약하면, 공간적 입장으로 해석하고 있는 기존 OOP 개념을 보완하기 위해 나온 새로운 개념이라고 볼 수 있다. 현재 .NET 환경에서 내가 이해하고 있는 델리게이트의 개념은 다음과 같다. 1) 개념상으로는 개체의 동작을 추상화한 '형(Type)' 이다. 델리게이트에 각종 비동기 호출을 위한 패턴이 정의된 점을 보면 마이크로소프트가 델리게이트를 어떤 개념으로 해석했는지를 잘 보여준다. 2) 형태상으로는 메소드의 형식을 추상화한 '형' 이다. .NET Framework 상에서는 메소드의 형식 중 중요한 두 가지인 인자(Argument) 와 반환값(Return value) 으로 델리게이트를 정의할 수 있다. 멀티태스크의 입장에서 델리게이트의 개념은 매우 중요하.. 2006. 1. 25.
MS 의 C# 코딩이 익숙해지면서 - 2 C# 의 인터페이스는 자바와 상당히 다른 점이 많다. 정적 필드값이 들어갈 수도 없고, 접근 한정자도 지정하는 것이 불가능하다. 때문에 처음에는 이모저모 불편이 느껴졌다. 사실 자바의 인터페이스같은 경우, 정적 필드값을 일종의 통신을 위한 메시지 개념으로 만들어 두었으며, 이것은 고전적인 모듈간의 통신 형태가 가지고 있는 편의성과 퍼포먼스 향상을 남겨둔 것으로 보인다. 그리고 이런 자바의 인터페이스는 개체가 이러한 형식으로 통신이 가능하다는 형태를 보여주는 것 보다는 그 자체가 일종의 메시지 개체로 사용될 수 있는 형식에 가깝다. 즉 메시지와 구조체를 활용한 고전적인 통신방식을 OOP 의 개념으로 변형시켰다고 할까... C# 의 인터페이스는 아주 철저하게 개체의 형태를 나타내는 형식으로만 제약되어 있다... 2005. 3. 7.
MS 의 C# 코딩이 익숙해지면서 - 1 자바와 비교하면서 몇 가지 알게 된 점이 있어 적는다.. 1) 자료구조의 동기화 기능이 한 클래스에 대한 래퍼 형식으로 구현되어 있다. 자바의 경우 Hashtable 은 액세스 시 동기화 지원, Hashset 이나 Hashmap 의 경우는 액세스 시 동기화를 지원하지 않는 형태로 분리되어 있다. 물론 이것은 기능적으로 분류한 것이 아니라, 초기에 자료구조에 동기화가 필요할 것이라고 생각되어 걸어 두었다가, 실질적으로 코딩시에 자료구조 클래스의 동기화가 별 의미가 없고, 그렇다고 놔두자니 퍼포먼스가 저하되는 현상이 발생하여 1.2 부터 새로이 등장한 자료구조에서는 '니가 알아서 해라' 라고 하면서 동기화를 지원하지 않는 자료구조들이 탄생한 것이다. .NET 에서는 각 자료구조들이 래퍼 클래스를 따로 가지고.. 2005. 2. 23.
MS VS .NET C# vs Sun Java SE 5 나는 작년 10월까지만 해도 자바 프로그래머였고 그 때까지만 해도 MS 의 솔루션들은 가깝고도 먼 존재였다. MS 환경이라고는 2000-2001년 Visual Basic 6.0 으로 이것저것 툴만을 만져본 것이 고작이었고, 그것도 쓸만한 툴을 만들어내지는 못했다. (그나마 남은 소스도 지금은 구동조차 하지 않는다) 뭐 자바 경력도 사실 그렇게 긴 것은 아니다. 2001년 말부터 시작해서 고작 3년간의 실무경험을 쌓았고, 그 동안 나온 상업적 물건이라면 Eternal Dream 이라는, 국내에서는 베타서비스까지, 대만에서는 겨우 유료화를 넘어선 게임을 개발한 것 뿐이니까. 하지만 코더로서 지금 즉 2005년 1월 중반까지 C# 을 코딩해 보면서 Java 와 비교해 이것저것 재미있는 차이점을 느끼게 되었다... 2005. 1. 18.
반응형