U E D R , A S I H C RSS

CS/5월11일/부록



1. 개요

  • 미처 스터디 시간에 전달하지 못한 내용을 정리한 페이지입니다.

2. 내용

  • 닷넷 응용 프로그램은 기존의 모든 윈도우 응용 프로그램에 대응해서 만들 수 있습니다.
    • 웹 응용 프로그램의 경우 ASP는 ASP.NET에 대응됩니다.
    • 콘솔 응용 프로그램의 경우 Win32 Console은 Console에 대응됩니다.
    • 윈도우 응용 프로그램의 경우 Win32 Windows, MFC는 Windows Forms, WPF에 대응됩니다.
    • COM+ 응용 프로그램의 경우 COM+가 Enterprise Services에 대응됩니다.
    • 윈도우 서비스의 경우 NT 서비스가 윈도우 서비스에 대응됩니다.

  • 유니코드(Unicode)는 다국어 지원을 위한 문자 집합입니다. 전 세계의 모든 문자를 표현하기 위해 설계된 산업 표준으로, 프로그램을 유니코드 기반으로 만들면 운영체제의 언어 설정에 상관없이 동일한 문자를 출력할 수 있습니다.
    • 물론, 대상 운영체제에 유니코드에 대응되는 폰트(Font)가 설치되어 있어야합니다.

  • 콘솔에 메시지를 출력하려면 다음의 메서드를 사용합니다. 인자는 문자열, 정수형, 실수형, 논리형 무엇이든 올 수 있습니다.
    • Console.Write은 개행이 없는 버전입니다.
    • Console.WriteLine은 개행이 있는 버전입니다.

  • string 타입은 '+' 연산자를 제공하기 때문에, 문자열을 서로 연결할 수 있습니다.
    • ex) string s = "Hello" + "World"; // s는 HelloWorld

  • switch 문에서 default는 C#에서도 강제 사항은 아닙니다.
  • C#에서도 복합 대입 연산자인 '+=', '-=', '*=', '/=', '%='를 제공합니다.

  • 컴파일러가 값을 컴파일 시에 계산할 수 있는 상수 표현식이면 상수에 대입할 수 있습니다.
  • 변수끼리 대입을 했을 때 값 형식은 각각 다른 위치에 동일한 값이 복사되어 개별 값을 가리키는 반면에, 참조 형식은 힙 메모리에 하나의 값만 위치한 상태에서 스택의 변수 값이 같은 힙 위치를 가리키게 됩니다.

  • 각 자료형은 서로 변환하는 것이 가능합니다. 부가적인 코드를 지정하지 않고 자연스럽게 형변환(Type Conversion)되는 것을 '암시적 변환'이라 하고, 개발자가 명시적으로 형변환임을 알리는 것을 '명시적 변환'이라고 합니다.

  • 범위가 작은 데이터 타입에서 그 값을 충분히 담을 수 있는 큰 타입으로 형변환하는 것은 컴파일러가 '암시적 변환(Implicit conversion)'으로 간주해서 오류 없이 컴파일 과정을 완료할 수 있습니다.
  • 큰 값을 표현할 수 있는 데이터에서 작은 타입으로 대입하는 경우나 숫자와 문자 간 변환은 암시적으로 변환할 수 없고, 명시적으로 변환해야 합니다.

  • 예약어(Reserved word) 또는 키워드(Keyword)는 C# 언어에서 문법을 표현하기 위해 미리 예약된 단어를 의미합니다.
  • 식별자(Identifier)는 임의로 선택해서 이름지을 수 있는 단어를 말합니다.

  • Main 메서드도 결국 Main이라는 이름의 식별자가 포함되어 있으나, 닷넷 응용 프로그램 구조 정의에 따라 반드시 이 메서드가 있어야만 프로그램을 실행할 수 있으므로 변경해서는 안 됩니다.
  • 식별자의 시작 문자는 숫자로 시작할 수 없고, 반드시 문자여야만 합니다.

  • 특수 문자 중에서 유일하게 '_' 문자만이 시작 문자로 사용될 수 있습니다.

3. 예제 코드

class Program
    {
        static void Main(string[] args)
        {
            int number = 0;

            if (number > 20)
            {
                Console.WriteLine("Number is greater than 20.");
            }
            else if (number < 20)
            {
                Console.WriteLine("Number is less than 20.");
            }
            else
            {
                Console.WriteLine("Number is equal to 20.");
            }

            // Switch - case
            string text = "C#";
            string textConcat = "C#" + "VB.NET";

            Console.WriteLine(textConcat); // Output : C#VB.NET

            switch (text)
            {
                case "VB.NET":
                case "C#":
                    {
                        Console.WriteLine(".NET Compliant Language.");
                        break;
                    }
                case "Java":
                    {
                        Console.WriteLine("Java");
                        break;
                    }
                default:
                    {
                        Console.WriteLine("What is this?");
                        break;
                    }
            }

            // 삼항 연산자. (Conditional Statement)
            bool isJava = (text == "Java") ? true : false;

            // While loop
            int loop = 5;

            while (loop > 0)
            {
                Console.WriteLine("While Loop!");
                loop--;
            }

            loop = 5;

            // do-while loop
            do
            {
                Console.WriteLine("Do-While Loop!");
                loop--;
            } while (loop > 0);

            // for-loop
            for (int i = 0; i < 40; i++)
            {
                Console.WriteLine("For loop!");
            }

            // foreach
            int[] arr = new int[] { 0, 1, 2, 3 };

            foreach (int item in arr)
            {
                Console.WriteLine(item);
            }

            // multi-dimension array
            int[,] twoDimArray = new int[2, 3];
            twoDimArray[0, 2] = 10;
            int num = twoDimArray[0, 1];
        }
    }

4. 덧글

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:22:43
Processing time 0.0177 sec