설명) struct

 

 

 

Ø(1) 이름과 나이로 구성된 People이란 이름의 struct 사용자 정의 형식이다.

 

Ø(2) int x; 하는 것처럼 People he; 라고 쓰면 된다. 이때 he를 초기화 해 줄 필요는 없다. he 내부의 요소들을 각각 초기화 해준다.

 

Ø
(3)(4) struct 내부의 멤버들에게 접근하기 위해서는 he.age 처럼 .(dot) 연산자를 사용한다.

 

 

 

 

 

예제) struct

 

 

 

 

using System;

struct People{

  public string name;  //ß(1)

  public int age;

}

class StructTest{

  public static void Main() {

  People he;  //ß(2)

  he.name = “kym";  //ß(3)

  he.age = 20;

  Console.WriteLine("이름: {0}",he.name);//ß(4)

  Console.WriteLine("나이: {0}",he.age);

  }

}

 

 

 

 

struct

 

 

 

Ø여러가지 형식의 자료들을 모아둔 틀이다. C#에서는 메소드가 없는 클래스라고 할 수 있다.
Ø구조체의 정의 방법()

struct People

{

  public string name;

  public int age;

}

Ø구조체의 사용법
l위 구조체의 age를 읽거나 쓰고 싶을 때, People.age 를 쓴다.

 

 

 

 

 

예제) enum

 

 

 

using System;

class Test

{

  public enum MyBool

  { T='a', F=100 };

  // Øbool 형식을 본따서 enum을 만들어 보았다.

 

  public static void Main()

  {

  MyBool a = MyBool.T;

  // Øenum 선언에서 T는 문자로 F는 정수로 각각 매핑하였다.

 

  Console.WriteLine(a);

  Console.WriteLine(MyBool.F);

  Console.WriteLine((int) a);

  // ØMyBool 형식의 aMyBool.T또는 MyBool.F로 대입할 수 있다.

  }

}

 

 

 

 

enum type

 

 

 

Øenum ( enumeration, 열거)

     용법: enum 변수명 { , , … }

     1: enum Grade { A, B, C, D, F }

     2: enum Grade { A=4,B=‘3’,C=2,D=1,F=0 }

 

Ø
1)의 경우, A, B,… 등은 내부적으로는 0, 1,… 같은 정수로 매핑되어 있다. 사용자가 예2) 처럼 직접 매핑할 수 도 있다.

 

Øenum Grade 형식의 변수는 A, B, C, D, F 만을 값으로 가질 수 있다. (boolean 변수가 true, false 만 가질 수 있는 것과 비슷하다)

 

 

 

 

설명) 내장 데이터 형식 메소드

 

 

 

 

Ø앞장 예제의 결과는 다음과 같다.

Type?:System.Int32 

HashCode?:100

ToString?:100

i=j?True

Type Of 100:System.Int32

 

Ø가장 많이 쓰이는 것이 ToString()메소드이다. 100이라는 수를 표현하기 위해서 문자열 “100” 이 필요하기 때문이다. 어떤 객체에 ToString()을 구현해 두면, WriteLine()을 통해 출력할 수 있다.

 

 

 

 

예제) 내장 데이터 형식 메소드

 

 

using System;

class DataType

{

     public static void Main()

     {

          int i = 100;

          Syetem.Int32 j = 100;

 

          Console.WriteLine("Type?:{0}",i.GetType()); 

          Console.WriteLine(“HashCode?:{0}",i.GetHashCode());

          Console.WriteLine("ToString?:{0}",i.ToString());

          Console.WriteLine(“i=j?{0}",i.Equals(j));

          Console.WriteLine(“Type Of 100:{0}",100.GetType());

     }

}

 

 

 

 

내장형 데이터 형식과 객체

 

 

 

 

ØC#의 모든 것은 객체다. 내장형 데이터 형식 역시 객체이다. 이들은 모두 System.Object로부터 상속받은

  객체이다. 따라서 메소드와 속성을 가진다.

Ø모든 객체는 아래와 같은 메소드를 가진다.

 

 

 

 

 메소드명

 설명

  bool Equals()

  같은 객체인지 비교

  int GetHashCode()

  해쉬값을 얻음

  Type GetType()

  형식 정보 얻음

  string ToString()

  객체를 대표하는 문자열 반환

 

 

 

 

 

 

+ Recent posts