닷넷 프레임워크 125

#017_닷넷(.NET)_.Net Framework 기본 - 다차원 배열(사각, 가변)

안녕하세요 삽잡이입니다. 이번 시간에는 다차원 배열에 대해서 알아보려고합니다. 다차원 배열에는 '사각 배열'과 '가변 배열'이 있습니다. 즉, 이전 시간에 인덱스 '하나'를 가지고 놀던 배열은 1차원 배열이라 부르는데, 이번 시간부터는 인덱스 '두 개 이상'을 가지고 노는 배열에 대해서 알아본다는 것입니다. 우선 사각 배열은 C/C++에서 우리가 알던 다차원 배열을 말하는 것입니다. 그런데 '가변 배열'은 C/C++에서 제공하지 않았지요... 따라서 가변 배열은 C/C++에서 따로 사용자가 직접 만들어서 썼었습니다. 아무튼... 사각배열부터 알아보도록 하겠습니다. 사각 배열은 배열은 배열인데 '두 개 이상'의 인덱스를 갖는 배열을 말합니다. 어떻게 접근할 수 있느냐... 이와 같이 접근할 수 있습니다....

#016_닷넷(.NET)_.Net Framework 기본 - 일차원 배열

안녕하세요 삽잡이입니다. 이번 시간에는 배열에 대해서 알아보려고 합니다.물론, 지난 시간에 올린 기억이 있으나 다시한번 기분좋게! 달려보도록 하겠습니다. 아래 코드 한 줄은 배열에 대한 예제입니다. int[] arr = { 10, 20, 30, 40, 50 }; 해당 배열은 여러 방법으로 쓸 수 있습니다. 사실 'arr1', 'arr2', 'arr3' 처럼 쓸 수 있습니다.int형 다섯개 짜리가 생략 되있음을 간략하게 사용한 것이지요...즉, 동적으로 배열 5개짜리를 만드는 것이 저 코드의 내용입니다. 초기 값이 있다면 두번째 코드와 같이 숫자를 생략할 수 있습니다.어차피 초기값을 보고 결정하기 때문이지요... 그리고 배열은 개수가 고정되어있기 때문에 앞을 생략하여 마지막 코드처럼 만들 수 있습니다.마지..

#015_닷넷(.NET)_.Net Framework 기본 - 매개변수 한정자

안녕하세요 삽잡이입니다. 지금부터 매개변수 한정자에 대해서 알아보도록 하겠습니다. 매개변수에는 크게 두 가지가 있습니다.바로, '입력 매개변수'와 '출력 매개변수'입니다. 입력 매개변수는 'Client 쪽에서 Server 쪽으로 값을 읽기 위한 목적'의 매개변수입니다.따라서 '인 파라메터'라고 부릅니다.그리고 'Server 쪽에서 Client 쪽으로 값을 보내기 위한 목적'의 매개변수를'아웃 파라메터'라고 부릅니다. C#에서는 출력 매개변수를 다시 두 개로 더 쪼갭니다.하나는 위에서 언급한 '아웃 파라메터'이고,또 다른 하나는 '읽고 쓰는 목적'의 파라메터인, 'ref 파라메터'입니다. 일반적으로 읽고 쓰는 것도 '쓰는 것'으로 취급하고쓰는 것도 '쓰는 것'이니 out 파라메터로 분류를 했었는데C#에서는..

#014_닷넷(.NET)_.Net Framework 기본 - foreach & switch

안녕하세요 삽잡이입니다. 이번시간에는 forech문과 switch문에 대해서 알아보려고합니다. foreach 문은 '배열의 크기를 확인할 필요 없이 배열 내의 모든 항목을 반복해서 처리하는 기능'을 제공합니다. 즉, 모든 원소를 돌리려고 사용하는 반복문이라는 것입니다. foreach문이나 굳이 그렇게 어렵게 차이가 나지 않습니다...arr에 들어있는 내용들을 모두다 하나씩 가져오라는 뜻입니다...뭐... each는 '각각', '모두'라는 뜻이기 때문이지요... foreach문을 사용할 때에는 '처음부터 끝'까지 돌립니다.하지만, 인덱스 접근을 하기 위해서는 변수를 따로 만들어줘야하는 불편함이 있습니다.따라서 인덱스 접근을 위해서는 기존 for문이 더 편할 수 있습니다. switch 문은 기존 switch..

#013_닷넷(.NET)_.Net Framework 기본 - var & LINQ

안녕하세요 삽잡이입니다. 이번 시간에는 var와 LINQ라는 C# 기능에 대해서 알아보고자합니다. var는 임시적으로 타입 변환을 변환해주는 기능을 가지고 있습니다.즉, '범용적인 변수의 형식'을 var라고 할 수 있다 이겁니다. 그렇다면 var라는 형식이 있는 것인가요?사실은 컴파일러에의해 '오른쪽 타입을 보고 왼쪽 타입을 결정'하는 것입니다. 만약, 왼쪽 타입을 알지 못할 때가 있습니다.그렇다면 결국 오른쪽 타입을 알 수 없다는 것이지요...이때 var를 통해 컴파일러가 알아서 만들어주는 것입니다. 그렇다고 var가 편하다고 계속 쓰면 안됩니다.우선적으로 명확성이 떨어지고, var는 '지역변수'로만 사용이 가능하기 때문입니다. C#에는 미니 언어인 LINQ를 사용할 수 있습니다.이 미니 언어인 'LI..

#011_닷넷(.NET)_.Net Framework 기본 -Getter, Setter

안녕하세요 삽잡이입니다. 이번시간에는 Getter와 Setter에 대해서 알아보려고합니다. 우선, C#언어로 구현한 예제 프로그램 하나를 구경하시고 오겠습니다... Length는 '속성'이라고 부릅니다.이건 객체지향에서 말하는 문법과 다른 문법입니다...여기서 '속성'은 특수한 메서드입니다. 객체지향에서 속성이란 개념은 지난시간에 알아봤었지요... args.Length는 바로 Getter와 Setter와 연관이 있습니다. 객체 지향에서는 객체가 당연하게 있습니다.그런데 이 객체의 상태를 '읽고', '쓰는' 인터페이스가 필요할 것입니다.그 인터페이스의 애칭이 읽는 인터페이스의 경우 'Getter'쓰는 인터페이스의 경우 'Setter'라고 부르는 것입니다. 즉, 상태를 읽을 수 있게 하는 놈을 Getter,..

#010_닷넷(.NET)_.Net Framework 기본 - 객체지향 및 C# 용어 정리

안녕하세요 삽잡이입니다. 이번 시간에는 객체 지향과 C#에서 부르는 속성 및 기능에 대한 용어를 살펴보고자합니다. 객체 지향은 '속성'과 '기능'으로 나뉘어집니다.이 속성은 다른 말로는 '특성'이라고도 부르지요...property, attribute로 부터 번역되어 온 뜻입니다. 기능은 function으로 부터 왔지요... 메소드도 method로부터 왔습니다...다 똑같은 말입니다... 객체 지향에서는 말이지요... 속성, 특성을 C++에서는 멤버, 데이터가 되고클래스로부터는 변수가 되고 기능, 메소드를 멤버 함수라고 부르지요... 메소드라는 단어 자체가 '기능을 하는 방법'을 의미합니다.즉, 뭔가 해결하는 방법을 의미하는 것입니다.이 기능들을 명령들이라고 부릅니다... 또한 객체지향에서는 속성, 특성을..

#009_닷넷(.NET)_.Net Framework 기본 - 배열

안녕하세요 삽잡이입니다. 이번 시간에는 배열에 대해서 알아보도록 하겠습니다. 배열은 int[], string[], Point[], Test[] 등등 만들 수 있습니다.그리고 'int[] iarr = new int[5];' 이런식으로 구현을 하지요...여기서 iarr은 '참조자', '참조 변수'라고 부릅니다.다른 곳에서는 일반적으로 객체라고 부르지만 정확하게는'new int[5]'가 객체입니다. C#이나 닷넷의 배열은int[]와 같은 형태를 클래스로 부릅니다.즉, int[]는 int형 array 클래스를 말하는 것입니다. iarr은 클래스의 객체라고 부르지만, 정확히는 클래스 객체의 참조 변수입니다.즉, 참조라고 부르는 것입니다. 간단하게 포인터와 같다고 생각하면 됩니다.사실 진짜로 내부에 구현이 되있습니..

#008_닷넷(.NET)_.Net Framework 기본 - 문자열과 내장 타입간 변환

안녕하세요 삽잡이입니다. 이번시간에는 간략하게 문자열과 데이터 타입간에 변환하는 과정에 대해서 알아보려고합니다. C#의 모든 데이터는 객체입니다. 위의 예제코드를 살펴보자면,10은 단지 값으로 표현되는 int형 객체임을 나타내는 것입니다.그리고 이 것은 우리가 인식하지 않고 사용해도 됩니다.왜냐하면, 기존에 우리가 사용하던 방식과 완벽하게 동일한 사용법을 제공해주기 때문입니다. 아무튼... C#에서는 모든 기본 데이터를 객체로 나타냄을 기억하시길 바랍니다. 문자를 정수로는 변환할 수 있으나,정수를 문자로 변환을 할 수 는 없습니다... C#에서는 문자나 정수나 모두 전혀 다른 형식입니다.단지 이 형식들을 서로간에 변환을 해주는 것일 뿐입니다.기존의 C/C++은 정수나 문자나 같이 취급을 했는데C#에서는 ..

#007_닷넷(.NET)_.Net Framework 기본 -static & Main & 설비 영역 & APP 영역

안녕하세요 삽잡이입니다. 이번 시간에는 정적, static에 대해서그리고 각 영역에 따른 올바른 코드 구현의 필요성(?) 알아보려고합니다. 자... 여러분은 정적 메서드와 인스턴스 메서드를 구분하실 수 있으십니까?인스턴스 메서드는 객체가 있어야 호출이 가능합니다.당연한 소리입니다... 객체 것이기 때문이지요... 정적 메서드는 '객체 없이 호출하는' , '객체 없이 클래스에서 호출하는' 의 뜻을 가지고 있습니다.정적 메서드는 객체와 상관이 없습니다. 클래스의 메서드이기 때문입니다.다시 말하자면, 객체 없이도 호출이 가능한 클래스의 메소드가 바로 정적 메서드라는 것입니다.따라서 static을 통해 구분해줘야합니다. 그런데 말입니다... Main 함수는 정적 메소드입니다.왜냐하면 Main 함수는 객체 없이도..