본문 바로가기
[Java 개발자가 공부해본 C#] Java와 C# enum 의 차이점. 안녕하세요 돼지왕왕돼지입니다. 오늘은 Java 와 C# enum 의 차이점에 대해 알아보겠습니다. C# 의 enum C#의 enum은 element 들의 값이 type 을 가질 수도 있고, 값도 가질 수 있습니다. enum SEASON : int { SPRING, SUMMER, FALL, WINTER } 위와 같이 계절을 define 하면, SPRING, SUMMER, FALL, WINTER 는 각각 0, 1, 2, 3 의 integer 값을 갖게 됩니다. type 을 생략했을 경우는 자동으로 int 가 type 으로 사용되며, value 를 생략했을 경우는 0 부터 차례로 assign 됩니다. enum SEASON { SPRING = 5, SUMMER, FALL = 10, WINTER } 위와 같이 e.. 2012. 4. 15.
[Java 개발자가 공부해본 C#] 형 변환 ( Type Conversion ) 시 주의할 점 안녕하세요 돼지왕 왕돼지입니다. 오늘은 형 변환 (Type Conversion)시 주의해야 할 점에 대해 알아보겠습니다. - 원본 변수의 데이터와 형 변환하려는 대상 변수가 signed & unsigned 관계일 경우 bit 해석이 다르기 때문에 값이 달라집니다. - 원본 변수의 데이터가 형 변환하려는 대상 변수의 용량보다 큰 경우에 "오버플로우" 가 발생하기 쉽기 때문에 조심해야 합니다. - 부동 소수점은 형식의 특성상 오버플로우가 일어나지 않습니다. 다만, 정밀성에 손상이 생깁니다. float double conversion 은 2진수로 기록된 값을 10진수로 복원한 후 다시 2진수로 변환해서 기록합니다. 따라서 2진수로 정확히 표현할 수 없는 값의 경우 conversion 시 정밀도가 달라져 다른 .. 2012. 4. 15.
[Java 개발자가 공부해본 C#] C#에서 제공하는 Data Type. 안녕하세요 돼지왕왕돼지입니다. 오늘은 C#에서 제공하는 Data Type 에 대해 알아보겠습니다. 숫자형 ( 12가지 ) byte - 부호 없는 정수 / 1byte sbyte - signed byte 정수 / 1byte short - 정수 / 2byte ushort - unsigned short / 2byte int - 정수 / 4byte uint - unsinged int / 4byte long - 정수 / 8byte ulong - unsigned long / 8byte char - 유니코드 문자 / 2byte float - single precision 부동 소수점 형식 ( 7자리 ) / 4byte double - double precision 부동 소수점 형식 ( 15~16자릿수 ) / 8byte .. 2012. 4. 15.
[Java 개발자가 공부해본 C#] Stack Memory, Heap Memory, Variable, Reference 의 관계 안녕하세요 돼지왕왕돼지입니다. C# 을 공부하면서 그동안 뭔가 깔끔히 정리되지 않았던 Stack Memory, Heap Memory, Variable, Reference 의 관계에 정리가 잘 되는 그림 및 글을 발견하여 함께 공유하고자 합니다. 이를 이해하는 것은 Garbage Collection 을 운영하는 Java 와 C# 에 매우 중요합니다. void test(){ object a = 10; object b = 20; } 이런식으로 Stack 에 Heap 주소를 참조하는 a, b 각각의 variable 이 assign 됩니다. integer 이긴 하지만, object 에 값을 할당하였기 때문에 그 값은 Heap memory 에 assign 됩니다. 함수가 끝나면 기본적으로 local variable.. 2012. 4. 15.
[Java 개발자가 공부해본 C#] 변수 초기화 ( Initialize ) 에 대하여. 안녕하세요 돼지왕왕돼지입니다. 이번에는 변수 초기화 ( Initialize ) 에 대해 알아보겠습니다. 기본적으로 C#의 변수 초기화는 Java 와 같은 맥락입니다. ( C# 이 Java 를 흉내낸 언어라는 말이 많은데, 사실여부를 떠나 닮은 점은 매우 많습니다. ) Local 변수를 initialize 를 하지 않은 상태에서 사용하려고 하면, Initialize 되지 않았다는 이유로 compile 자체가 되지 않습니다. 그럼 Global Variable 의 경우는 어떨까요? Global Variable 의 경우는 default 초기값이 assign 이 됩니다. 예를 들어 0 이 들어가는 것이겠죠. 다음 코드들을 통해서 개념을 잡아봅시다. using System; namespace BrainCSharp .. 2012. 4. 15.
[Java 개발자가 공부해본 C#] CLR ( Common Language Runtime ) 에 대하여. 안녕하세요 돼지왕 왕돼지입니다. 오늘은 CLR ( Common Language Runtime ) 에 뭐하는 녀석인지 한번 알아보겠습니다. 이 CLR ( Common Language Runtime ) 은 자바의 JVM ( Java Virtual Machine ) 과 거의 같은 녀석이라고 보시면 되겠습니다. 계층도를 보았을 때 Class Libraries( .NET Framework ) 와 Application 을 연결하는 역할을 하고 있습니다. 요 CLR 은 말 그대로 .Net Framework 가 지원하는 Common Language ( C, C++, C#, Visual Basic 등 ) 이 돌아가는 가상머신 이라고 보시면 되겠습니다. 네이티브 코드로 작성되어 있는 프로그램들은 운영체제가 직접 실행할 수.. 2012. 4. 15.
[Java 개발자가 공부해본 C#] C#에서 Exception 이 발생하면.. 안녕하세요 돼지왕 왕돼지입니다. 오늘은 C#에서 Exception 이 발생했을 때의 상황에 대해 알아보겠습니다. 위의 스크린샷이 C#에서의 Exception 발생 상황입니다. 어디서 자주 본 화면이지요? "OO의 작동이 중지되었습니다." 와 "문제에 대한 해결 방법을 확인하는 중입니다." 라는 DIalog 가 나옵니다. 이 녀석의 정체가 바로 Exception 이라는 것을 C# 을 공부해보며 알았습니다. 사실 이것은 Console program 에 대한 exception 으로 System.IndexOutOfRangeException 이 발생했다는 것을 알 수 있지만, ( Java 에서는 IndexOutOfBoundException 이죠. ) 우리가 주로 마딱뜨리는 Exception 은 보통 MFC 의 E.. 2012. 4. 15.
[Java 개발자가 공부해본 C#] HelloWorld. 안녕하세요 돼지왕왕돼지입니다. 오늘은 C# 으로 HelloWorld 를 한번 만들어보죠. // HelloWorld.cs using System; namespace BrainCSharp { class HelloWorld { static void Main( string[] args ) { Console.WriteLine( "Hello, World!" ); Constole.WriteLine( "Hello, {0}!", args[ 0 ] ); } } } // HelloWorld.java import java.lang.System; package BrainCSharp; class HelloWorld{ public static void main( String[] args ){ out.println( "Hello. .. 2012. 4. 12.
[Java 개발자가 공부해본 C#] C# 개발을 위한 프로그램. ( Visual Studio, Visual C# 2010 Express, Dream Spark 무료 다운 ) 안녕하세요 돼지왕 왕돼지입니다. C# 개발을 위한 프로그램 ( IDE ) - Visual Studio, Visual C# 2010 Express, Dream Spark ( Visual Studio Professional ) 에 대해 알아보겠습니다. Visual Studio MS 사에서 상업용으로 정식발매한 C, C++, C#, Visual Basic 등의 개발을 지원하는 IDE ( Integrated Development Environment ) 입니다. 이 녀석은 무료판이 없으며, 라이센스가 필요합니다. 이 녀석은 아래 명시한 녀석들에 비해 모든 프로그램 언어를 지원한다는 면에서 매우 편리합니다. 하지만, 가격이 비쌉니다. 에디션에 따라 가격은 천차만별이며 비싼 녀석은 몇백만원까지도 합니다. 개인 개발.. 2012. 4. 12.
반응형