본문 바로가기
728x90

전체 글 54

C# 과제 C#을 공부하던 중. 과제가 약간 있어서 해당 과제에 대한 답을 달아봤다. 이게 맞는지는 모르겠다. 하지만 이러한 문제를 가지고 고민해본다는 것은 좋은 경험같다. 여러분들도 공부한 내용을 토대로 답을 달아보시고, 본인이 만든 답에 대해 평가해보길 바란다. C#의 특징에 대해 아는데로 기술하시오. C#은 마이크로소프트에서 .NET Framework를 위해 만든 언어로, C와 C++에서 자료형부터 구문, 로직 등을 가져왔으며, Java에서 객체지향 프로그래밍의 개념을 가져왔다. 이게 C# 1.0의 탄생이다. 하지만 그 뒤로 기술의 발전과 산업의 발전으로 점점 요구사항이 다양화되었으며 이를 만족하기 위해 C#도 발전하였다. 그 출발은 C# 3.0부터 JavaScript에서 코드와 데이터를 처리하는 방식을 본 .. 2020. 7. 21.
Lambda Expression - 람다식 람다식은 람다 대수의 형식을 프로그래밍 언어로 구현한 것이다. 람다 대수는 위키피디아에서... 이전에 Java에서의 람다식에 대해 글을 하나 썼었는데, C#의 람다식은 개념은 같으나 그 표현이 약간 달라서 따로 정리한다. 그리고 람다식에 대한 고민? 철학? 을 약간 더 알아보겠다. C#에서 람다식은 아래와 같이 사용된다. 코드로서의 람다식 : 익명 메소드의 간편 표기 용도 데이터로서의 람다식 : 람다식 자체가 데이터가 되어 코드 분석의 대상이 됨. 이 때 람다식은 별도로 컴파일할 수 있으며, 컴파일 시 메소드로도 실행 가능. 1번이 가장 빈번히 쓰이는 것이기에 주로 보겠다. 2번은 필요하면 찾아보자. 익명의 메소드라고 했다. 그럼 익명의 메소드를 한번 보고, 람다식으로는 어떻게 표현되는지 보자. // 익.. 2020. 7. 21.
as, is 연산자 as 와 is 연산자는 무엇일까? 간단하게 말하자면 형변환과 관련되어 있다. 1. as 오류를 발생시키지 않고 형변환이 가능한지 확인할 수 있다. 형변환이 된다고 하면, 해당 인스턴스를 반환하고 불가능하면 null 을 반환한다. Unit unit = new Unit(); Warrior warrior = unit as Warrior; // 형변환이 가능하면 warrior는 Warrior 인스턴스를 가지고, 불가능하면 null을 가진다. 단, 참조 형식끼리만 사용가능하다. (int 같은 값 형식과는 사용이 안됨.) 2. is as가 형변환하고 인스턴스 또는 null을 반환하는 반면, is는 bool형의 true/false를 반환한다. 또, 다른 특징은 as와는 달리 값 형식에서도 사용할 수 있다. 둘을 사용.. 2020. 7. 21.
List - 리스트 Java에서는 List가 인터페이스다. 그래서 실제로 사용하려면 ArrayList나 LinkedList 등을 사용했다. 하지만 C#에서는 List가 클래스다. 물론 IList라는 인터페이스도 존재한다. 여튼 List를 Java의 ArrayList나 LinkedList 처럼 사용하면 되겠다. ★ C#에서 맨 앞에 I가 붙으면 인터페이스를 뜻한다는 것을 참고하자. 본인이 인터페이스를 만들 때도 I를 붙여서 구분되기 쉽게 하는 게 좋겠다. ★ 그럼 List를 생성하는 것부터 주로 쓰는 함수를 알아보자. 1. 생성 List list = new List(); //T는 제네릭이다. 제네릭에 대한 공부는 따로 해오자. List myList = new List(){1, 2, 3}; //myList는 1, 2, 3을 가.. 2020. 7. 14.
값형식과 참조형식 값형식과 참조형식을 알기 전에 스택(Stack)과 힙(Heap)을 알고 가면 좋다. 2020/07/13 - [개발/C#] - Stack and Heap Stack and Heap 윈도우 프로그램은 기본적으로 하나의 스레드를 가진다. 그리고 이 스레드마다 저장소가 메모리에 개별적으로 할당되는데 이 영역이 스택이다.(기본 1MB 할당) 개발자가 변수를 선언하면 스택의 epdev.tistory.com 스택과 힙에 대해 간략히 알아봤다면, 값형식과 참조형식에 대해 알아보자. 값 형식에 속하는 것들은 sbyte, byte, char, short, ushort, int, uint, long, ulong, float, double, decimal, bool 이 있다. 값 형식의 경우 값은 스택에 저장되고, 변수는 그.. 2020. 7. 13.
Stack and Heap 윈도우 프로그램은 기본적으로 하나의 스레드를 가진다. 그리고 이 스레드마다 저장소가 메모리에 개별적으로 할당되는데 이 영역이 스택이다.(기본 1MB 할당) 개발자가 변수를 선언하면 스택의 어떤 영역을 사용하게 된다. C# 컴파일러가 변수 선언에 대한 스택 메모리를 할당해주는 것이다. 그리고 좋은 점은 이 컴파일러가 알아서 스택의 메모리도 해제해준다. 힙은 이와 달리 프로그램에서 추가적으로 메모리를 요청하면 할당되는 저장소다. 스택보다 유연한 느낌이지 않는가? 좋아보이지만, 그렇다고 힙 메모리를 남발하면 프로그램 성능 저하가 올 수 있다는 점을 알아두자. 힙에 메모리를 할당하는 것은 개발자가 명시적으로 요청한 것이므로 해제도 해줘야한다. 하지만 C#은 이것도 GC(Garbage Collector, 가비지 .. 2020. 7. 13.
728x90