C#
-
C# GitHub, 제네릭, 애트리뷰트, 예외, 스레드 (2020.06.15)C# 2020. 6. 15. 10:50
https://backlog.com/git-tutorial/kr/ GitHub 입문 누구나 쉽게 이해할 수 있는 Git 입문~버전 관리를 완벽하게 이용해보자~ | Backlog 누구나 쉽게 알 수 있는 Git에 입문하신 것을 환영합니다. Git을 사용해 버전 관리를 할 수 있도록 함께 공부해봅시다! backlog.com Commit, Push, Pull 하는 게 가장 중요하다. Git은 원격저장소랑 로컬저장소 두 개가 있다. Git Server = Remote Repository = 원격 저장소 내 저장소 = Local Repository 내 저장소에 원격 저장소에서 들고온 것을 수정한 것을 확정하는 것을 Commit 이라고 한다. -> 아직 내 저장소에만 저장되어 있는 자료를 Server 에 올리는 것..
-
C# 클래스 간의 형변환, 중첩 클래스, 델리 게이트, 콜백 메서드(교육 14일차)C# 2020. 6. 4. 12:50
클래스 간의 형 변환 타입을 정의하는 것은 "단위(unit)"을 빈번하게 사용하는 프로그램에서도 유용하다. 통화 단위를 생각할 때 원화 달러 엔화가 있을 때 이를 단순히 decimal하나로 지정한다면 자칫 중요한 금전 계산에 오류가 발생할 여지가 남는다. decimal dollar = 10; //10 달러 decimal won = dollar * 1200; //12,000 원 decimal yen = won/10 //1200엔 yen = dollar; 프로그램 오동작의 원인 Currency는 프로퍼티로 money 변수를 초기화하고 반환하는 부모 클래스로부터 상속받은 Won, Dollar, Yen 클래스를 만든다. using System; using System.Collections.Generic; usi..
-
C# 오버라이드, 오버로드 (13일차)C# 2020. 6. 3. 17:37
오버라이드 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _20200603_001 { class Mammal { public virtual void Move() { Console.WriteLine("이동한다"); } } class Lion : Mammal { public override void Move() //override 자리에 아무것도 안적으면 new로 번역한다. { Console.WriteLine("네발로 걷는다"); } } class Whale : Mammal { public override void Move() { ..
-
C# Object Class(조상)+메서드 4종세트, 배열의 조상(System.Array) base, 다형성 (교육 12일차)C# 2020. 6. 2. 18:30
조상 클래스 클래스를 정의할 때 부모 클래스를 명시하지 않는다면 C# 컴파일러는 기본적으로 object라는 타입에서 상속받는다고 가정하고 자동으로 코드를 생성한다. 모든 클래스는 기본적으로 object를 상속받는다. public class DeviceManager == public class DeviceManager : object object로 시작하면 모든 클래스를 가리킬 수 있다. 만능 레퍼런스(Object) A는 세개 다 가리킬 수 있다. 그 위에 Object 클래스는 다 가리킬 수 있다. 위의 class A : Object 클래스를 생략해도 결과가 똑같으므로 A클래스 또한 Object 클래스를 상속받은 클래스이다. 모든 객체라면 Equals, GetHashCode , GetType, ToStri..
-
C# 캡슐화, 정보 은닉, 상속, 클래스 형변환 (교육 11일차) 메모리 주소확인C# 2020. 6. 1. 18:32
생성자 Person이라는 생성자가 3개가 있는데, person1이 new를 통해 생성될 때, 가장 먼저 스태틱 생성자가 실행 도중 가장 먼저 단 한 번만 호출되고, 디폴트 생성자가 실행된다. 다음으로 person2가 실행될 때 오버 로딩을 통해서 Person("")으로 문자열 매개변수를 줬기 때문에 일반 생성자로 생성된다. 캡슐화 관련성 있는 데이터와 그 데이터를 다루는 메서드를 객체 안에 구현하는 것이 일반적인 통념이고, 더 나아가서는 객체의 밖에서 알아야 할 필요가 없는 내부 멤버를 숨기기도 하는데, 이를 두고 캡슐화(encapsulation)라는 용어를 사용한다. 책에는 원의 넓이를 구하는 예제를 통해서 캡슐화를 설명하는데, 원의 넓이를 구하는 클래스가 있다고 가정할 때, 접근제한자의 pulic을 ..
-
C# 종료자, 정적 멤버, 인스턴스 멤버, 정적 필드,정적 생성자, 네임스페이스(교육10일차)C# 2020. 5. 29. 18:02
종료자 생성된 객체에 할당된 메모리를 없앨 경우 사용한다. 하지만 C#에서는 가비지 콜렉터라고 하는 개념이 알아서 없애준다. 잘 쓰지 않으니 특별한 경우에만 사용하자. 만든 객체의 개수만큼 호출된다. 객체 간의 종료자가 호출되는 순서는 스택을 따른다. 먼저 생성된 것이 나중에 종료된다. ~ 디폴트 생성자() { } 하지만 접속률이 높은 서버 같은 경우 CPU가 한참 바쁠 때, 가비지 콜렉터로 쓰레기 주우러 다니면 CPU의 부하가 올라갈 수 있으므로로, 많이 쌓이면 한꺼번에 처리하면 효율적이다. 자동과 수동의 장단점이 있지만 C#은 자동을 채택했다. 정적 멤버, 필드 스택 영역 Heap 참조 변수 ------------------------------------>>> Person 홍길동 Person Mai..
-
C# 명령행 컴파일러, *클래스* (교육9일차)C# 2020. 5. 28. 11:28
(지역 변수) stack heap (동적 할당) | | | | (new) | | | | | | | | | | | | | | | | | | | | | | | | | | | | int [] ar = 참조 변수 arr=new int [10] Main 메서드의 형태 네 가지 C언어에서 온 것, C의 표준을 제정할 때 각각의 운영체제에 맞춰 발전해온 C언어를 전부 표준에 맞춰 수정하기엔 어려움이 있기에 다음 네 가지의 형태를 다 받아들이기로 했다. public static void Main(); public static int Main(); public static void Main(string [] args); public static int Main(string[] args); 명령행 컴파일러 프로젝트 생성 ..
-
C# 객체지향, 구조체, 배열(교육8일차)C# 2020. 5. 27. 18:16
객체지향 언어 우리가 프로그래밍을 배우는 이유는 컴퓨터에게 일을 시키고 싶어서이다, 하지만 컴퓨터는 기계어 즉 0과 1밖에 이해하지 못한다. 지금 사용하고 있는 프로그래밍 언어를 기계어로 번역을 컴파일러가 하는 것이다. 그렇다면 실행 속도는 기계어와 프로그래밍 언어 중에 어느 것이 더 빠를까. 답은 기계어이다. 우리가 이해하기 쉬운 언어는 프로그래밍 언어이고 기계가 이해하기 쉬운 언어는 기계어이다. 이때 기계어와 프로그래밍 언어 사이에 CPU를 직접 제어하는 어셈블리 언어가 있다. 기계가 이해하기 쉬울수록 저급 언어 우리가 이해하기 쉬 올수록 고급언어이다. 프로그래밍 언어 중 C언어는 어셈블리 문자를 획기적으로 단축시킨 지 50년이 되었다. HW는 눈부신 발전을 이루었지만 C언어는 그대로이다. 그래서 나..