'C#/아는것'에 해당되는 글 3건

  1. 2019.03.28 Boxing Unboxing
  2. 2019.03.27 IndexOf와 static 한정자
  3. 2019.03.26 <data type>var

Boxing Unboxing

C#/아는것 2019. 3. 28. 18:19

구조체는 다른 구조체나 클래스에서 상속할 수 없음
구조체에 대한 상속을 흉내내기 위해서, 인터페이스를 사용한다.

박싱
값형식이나 구현된 객체를 Object형식이나 임의의 인터페이스 형식으로 변환하는 프로세스
값형식->참조형식으로 변환하여 힙에 저장, 박싱은 암시적이다(자동으로 해준당)

언박싱
인터페이스 형식을 객체나 값형식으로 변환하는 프로세스
참조형식->값형식, 언박싱은 명시적으로 변환해야만 한다.
단, 언박싱은 박싱을 한 참조형에게만 사용이 가능하다.

인터페이스(클래스의 기능의 정의가 포함되어있는 것)(상속 못하는 걸 상속하는 척하기위한 거)
인터페이스는 클래스 또는 구조체에서 구현할 수 있는 관련 기능에 그룹에 대한 정의가 포함되어 있다.
해당기능은 언어가 클래스의 여러 상속을 지원하지 않음 ->> 그래서 인터페스를 써야함

구조체는 다른 구조체나 클래스에서 상속할 수 없음
구조체에 대한 상속을 흉내내기 위해서, 인터페이스를 사용한다.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

 

namespace Study_05

{

    class Program

    {

        static void Main(string[] args)

        {

            int i1 = 0;

            object o1 = i1;//boxing

            int j1 = (int)o1;//unboxing 

 

            Console.WriteLine("i1:{0} >>Boxing>> o1:{1} >>unboxsing>>j1:{2}", i1,o1,j1);

 

            short i2 = 0;

            object o2 = i2;

            //int j2 = (int)o2;//short형을 int 형으로 언박싱 불가!, 자료형을 맞춰줘야함

            //Console.WriteLine("i2:{0} >>Boxing>> o2:{1} >>unboxsing>>j2:{2}", i2, o2, j2);

 

            Console.ReadKey();

        }

    }

}

 

Colored by Color Scripter

cs

'C# > 아는것' 카테고리의 다른 글

IndexOf와 static 한정자  (0) 2019.03.27
<data type>var  (0) 2019.03.26
:

IndexOf와 static 한정자

C#/아는것 2019. 3. 27. 15:15

IndexOf는
static 한정자를 사용하므로
인스턴스.IndexOf가 아니라
원형
class명.IndexOf로 접근해야합니다.

ex)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

 

namespace Study_04

{

    class ConsoleApp

    {

        public ConsoleApp()

        {

            Console.WriteLine("Hello World!");

 

            //실습 시작

            string[] arrNames = { "홍길동""임꺽정""홍상직" };

            foreach (string name in arrNames)

            {

                Console.WriteLine("{0}", name);

            }

            Console.WriteLine();

 

            for (int i = 0; i < arrNames.Length; i++)//위의 foreach와 같은 기능

            {

                Console.WriteLine("{0}", arrNames[i]);

            }

            Console.WriteLine();

 

            int j = 0;

            while (true)

            {

 

                Console.WriteLine("{0}", arrNames[j]);

                j++;

                if (j >= arrNames.Length)

                {

                    break;

                }

            }

            Console.WriteLine();

            Console.WriteLine(arrNames.GetValue(1));

            Console.WriteLine(Array.IndexOf(arrNames, "임꺽정"));

            //docs//array.GetValue()

 

        }

    }

}

 

Colored by Color Scripter

cs

'C# > 아는것' 카테고리의 다른 글

Boxing Unboxing  (0) 2019.03.28
<data type>var  (0) 2019.03.26
:

<data type>var

C#/아는것 2019. 3. 26. 23:41

var타입은 c# 3.0부터 사용이 가능한 데이터 타입으로
들어가는 값을 보고 컴파일러가 알아서 데이터 타입을 정해주는 아주 유용한 녀석

1
2
int a=10;
var b=10;
cs


'C# > 아는것' 카테고리의 다른 글

Boxing Unboxing  (0) 2019.03.28
IndexOf와 static 한정자  (0) 2019.03.27
: