'c#'에 해당되는 글 3건

  1. 2010/01/26 Visual Studio 2008의 단축키
  2. 2009/03/06 [C#] 열거형(enum)의 사용법
  3. 2009/02/04 [C#] UTF-8과 EUC-KR 인코딩
2010/01/26 09:25

MS에서 나눠주는 Key Binding Poster입니다.

필요하신분은 다운받아 쓰세요.

아래 단축키는 코드를 편집할때 가장 많이 쓰고 유용한 단축키입니다.

  • F12 : Edit.GoToDefinition
  • Ctrl + NUM * : View.PopBrowseContext


Visual C++ 2008 Keybinding Reference Poster

Visual C# 2008 Keybinding Reference Poster

저작자 표시 비영리 변경 금지

'Windows Programming > Programming Tips' 카테고리의 다른 글

Visual Studio 2010 단축키 포스터  (0) 2010/08/06
Visual Studio 2008의 단축키  (0) 2010/01/26
Posted by 태발이
2009/03/06 12:11
참고자료 : 닷넷 프로그래밍 정복(김상형) p.94

MSDN 관련 페이지 : http://msdn.microsoft.com/ko-kr/library/sbbt4032.aspx


열거형은 C/C++과 같이 enum 키워드로 정의 할 수 있다. 하지만 다른점이 몇가지 있다.

1. 타입을 정의 하는 문장은 명령이 아니기 때문에 열거형 정의문 뒤에 세미콜론을 붙이지 않는다.
2. 열거멤버 자체를 곧바로 사용할 수 없으며 반드시 열거타입.멤버 식으로 사용해야 한다.


열거형 정의 방법
enum Origin { East, West, South, North }
enum Origin { East = 1, West = 5, South, North }
// 값이 생략된 멤버는 자동적으로 이전멤버의 값보다 1 더 큰 값을 갖는다.


열거형의 특징
열거형은 내부적으로 정수형으로 저장되는데 별다른 지정이 없으면 4바이트의 int 타입을 가진다. int 타입의 열거형은 최대 40억개의 열거 멤버를 정의할 수 있어 크기가 충분하다. 그러나 너무 충분해서 기억장소가 다소 낭비되는데 선언할 때 열거타입 이름 다음에 내부 저장 타입을 지정하면 용량을 다소 아낄 수 있다.
enum Origin : byte { East, West, South, North }


열거형 사용법
using System;
class CSTest
{
    enum Origin { East, West, South, North }
    static void Main()
    {
        Origin Turn;
        Turn = Origin.South;
        Console.WriteLine(Turn);
        int Value1 = (int)Turn;
        int Value2 = (int)Origin.South;
        Console.WriteLine(Value1);
        Console.WriteLine(Value2);

        string name = Turn.ToString();
        Console.WriteLine(name);
        Turn = (Origin)Enum.Parse(typeof(Origin), "East");
        Console.WriteLine(Turn);
    }
}
저작자 표시 비영리 변경 금지
Posted by 태발이
2009/02/04 19:11

C#에서 UTF-8과 EUC-KR을 바이트코드로 변환하는 방법입니다.
항상 개발을 하거나, 혹은 프로그래밍 공부를 하다보면 한글을 어떻게 표현하고, 어떻게 조작해야하는지 고민할때가 많습니다.
C#에서도 예외는 아니었는데, 웹브라우저 컨트롤을 쓰다가 한글이 포함된 주소가 먹히지 않는 사이트를 발견하고, 삽질을 시작했더랬습니다...^^ 조금은 어렵게, 혹은 쉽게 문제를 해결하였습니다.

인터넷 주소를 살펴보면 한글이 바이트코드로 전달되는데, UTF-8로 전달될때가 있고, EUC-KR로 전달될때가 있어서
전달되는 바이트코드가 UTF-8인지 EUC-KR인지 아래의 예제를 사용해보시면 확인해보실 수 있습니다.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Encoding
{
    class Program
    {
        static void Main(string[] args)
        {
            string s = "김희선";
            Console.WriteLine("원본문자열 : {0}", s);

            // 코드페이지 번호는 http://msdn.microsoft.com/ko-kr/library/system.text.encoding.aspx 에서 확인하시면 됩니다.
            int euckrCodepage = 51949;
            
            // 인코딩을 편리하게 해주기 위해서 인코딩클래스 변수를 만듭니다.
            System.Text.Encoding utf8 = System.Text.Encoding.UTF8;
            System.Text.Encoding euckr = System.Text.Encoding.GetEncoding(euckrCodepage);

            // 위에서 만든 변수를 이용하여 Byte의 배열로 문자열을 인코딩하여 얻는 부분입니다.
            byte[] utf8Bytes = utf8.GetBytes(s);
            Console.Write("UTF-8 : ");
            foreach (byte b in utf8Bytes)
            {
                Console.Write("{0:X} ", b); // byte를 16진수로 표기합니다.
            }
            Console.Write("\n");

            byte[] euckrBytes = euckr.GetBytes(s);
            Console.Write("EUC-KR : ");
            foreach (byte b in euckrBytes)
            {
                Console.Write("{0:X} ", b); // byte를 16진수로 표기합니다.
            }
            Console.Write("\n");

            // 인코딩된것을 문자열로 변환하기
            string decodedStringByEUCKR = euckr.GetString(euckrBytes);
            string decodedStringByUTF8 = utf8.GetString(utf8Bytes);
            Console.WriteLine("EUC-KR로 디코딩된 문자열 : " + decodedStringByEUCKR);
            Console.WriteLine("UTF-8로 디코딩된 문자열 : " + decodedStringByUTF8);
        }
    }
}
저작자 표시 비영리 변경 금지
Posted by 태발이