일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Death
- 장관을 이루는 일몰과 일출
- andrew ng
- Never
- 아름다운 풍경
- 위젯
- 동물에 관한 매혹적인 사실
- ML
- c#
- 4장
- 그루지야
- 무료
- Coursera
- 장관을 이루는 세계 곳곳의 등대 사진
- 아름다운 자연폭포
- 이탈리아
- 사진: 세계의 웅대한 산
- 제프리 리처
- 6장
- 5장
- 오늘일기
- Enough
- 3장
- 물이 만들어내는 전 세계의 아름다운 장관
- 8장
- Fear
- CLR via C#
- Wiki
- 남아프리카
- 전 세계의 잊지 못할 명소들
- Today
- Total
목록Development (50)
오진이 블로그

목차 2부. 타입 설계 8장. 메서드 타입 생성자 2부. 타입 설계 8장. 메서드 타입 생성자 CLR은 타입 생성자(혹은 정적 생성자, 클래스 생성자, 타입 초기자 등으로로 불린다)를 지원한다. 인스턴스 생성자는 인스턴스의 초기 상태를 설정하기 위해서 사용되고, 타입 생성자는 타입의 초기 상태를 설정하기 위해서 사용하게 된다. 타입은 내부적으로 사용하는 기본 타입 생성자가 따로 없다. 만약 타입 생성자를 정의해야 하는 경우라면 타입당 하나만 정의할 수 있으며 매개변수를 가질 수 없다. static 키워드를 사용해서 정의해야 한다. 타입 생성자는 반드시 private이어야 하는데, C#이 자동으로 private을 붙여준다. 타입 생성자는 반드시 private으로 선언되어 다른 개발자들이 작성된 코드에 의하..

목차 2부. 타입 설계 8장. 메서드 인스턴스 생성자와 구조체 (값 타입) 2부. 타입 설계 8장. 메서드 인스턴스 생성자와 구조체 (값 타입) CLR에서는 값 타입의 인스턴스를 언제든 생성할 수 있도록 허용하고 있으므로, 이를 막을 방법이 없다. 이런 이유로 값 타입은 내부에 생성자를 정의할 필요가 없으며, C# 컴파일러에는 값 타입에 대해서는 매개변수가 없는 기본 생성자 코드를 생성하지 않는다. CLR은 값 타입에 대해서도 생성자를 정의할 수 있도록 허용하고 있다.

목차 2부. 타입 설계 8장. 메서드 인스턴스 생성자와 클래스 (참조 타입) 2부. 타입 설계 8장. 메서드 인스턴스 생성자와 클래스 (참조 타입) 생성자는 특별한 유형의 메서드로 타입의 인스턴스를 올바란 상태로 초기화하는 것을 돕는다. 생성자 메서드는 항상 .ctor이라는 이름으로 불리며, 이 이름으로 메서드 정의 메타데이터 테이블에 등록된다. 생성자에서 명시적으로 값을 설정하지 않은 필드들은 항상 0이나 null 값을 가지게 된다. 인스턴스 생성자는 상속되지 않는다. 클래스를 abstract로 선언하면, 컴파일러는 기본 생성자를 protected로 선언하며, 그렇지 않은 경우에는 public으로 선언된 것으로 간주한다. 클래스를 static으로 선언하면(sealed와 abstract의 조합으로 생각할..

목차 2부. 타입 설계상수 필드 7장. 상수와 필드 2부. 타입 설계 7장. 상수와 필드 상수 상수 - 절대 불변의 값에 대한 기호 상수 기호를 정의할 때에는 그 값이 반드시 컴파일 시점에서부터 알 수 있는 값이어야 한다. 컴파일러는 그 다음 상수의 값을 어셈블리의 메타데이터에 저장한다. 상수의 값에 사용할 수 있는 타입은 컴파일러의 입장에서 기본 타입으로 취급될 수 있는 것으로만 한정된다.(C#의 경우, Boolean, Char, Byte, SByte, Int16, UInt16, Int32, UInt32, Int64, UInt64, Single, Double, Decimal, String/C#은 기본 타입이 아닌 상수 변수에 대해 null을 지정하는 것을 허용) 상수 필드는 언제나 타입의 일부로 취급된..

개요 준비물 편집기 Library 계정 설치 예제 스트레드시트(Spreadsheet) 생성 및 사용자 추가 데이터 가져오기 셀 데이터 가져오기 행 데이터 가져오기 열 데이터 가져오기 영영 데이터 가져오기 데이터 쓰기 셀에 값 쓰기 행에 데이터 추가하기 시트 크기 조정하기 스프레드시트(Spreadsheet) 생성/공유하기 스프레드시트(Spreadsheet) 생성하기 스프레드시트(Spreadsheet) 공유, 소유권 부여하기 참고자료 개요 안녕하세요. 오늘도 진이 빠진 채로 글을 적습니다. 오늘은 파이썬과 Google Drive(구글 드라이브) API를 활용해 Google Spreadsheet(구글 스프레드시트) 업무를 자동화하는 방법에 대해 알아보겠습니다. 준비물 편집기 Visual Studio Code ..

2부. 타입 설계 6장. 타입과 멤버의 기본 컴포넌트, 다형성, 버전 관리 객체 지향 프로그래밍(Object Oriented Programming, OOP)은 정말 많은 세월 동안 논의되어온 개념이다. 1970년대 후반에서 1980년대 초반까지 객체 지향 프로그래밍을 처음 도입할 떄에는 응용프로그램의 크기는 지금보다 더 작았고 응용프로그램의 제작을 위하여 코드를 작성하는 개발자들은 모두 한 회사 소속이었다. 오늘날 소프트웨어는 더욱 더 복잡해지고 있고 사용자들은 응용프로그램이 제공하는 그래픽 사용자 인터페이스(Graphic User Interface, GUI)와 메뉴 항목, 마우스 입력, 태블릿 입력, 프린터 출력, 네트워킹 등 수많은 기능들에 의존하고 있다. 이러한 이유로, 우리가 사용하는 운영체제와 ..

2부. 타입 설계 6장. 타입과 멤버의 기본 부분 클래스, 부분 구조체, 부분 인터페이스 부분 클래스, 구조체, 인터페이스에 대해서 살펴볼 것이다. partial 키워드를 사용하면 한 소스 코드 파일 내에서 여러 조각으로 타입의 선언을 분할하거나 여러 소스 코드 파일에 걸쳐 여러 조각으로 타입의 선언을 분할할 수 있게 하고 나중에 컴파일 단계에서 C# 컴파일러가 이를 하나로 통합하여 컴파일하게 되므로 CLR은 완성된 타입 정의 위에서 작업할 수 있도록 해준다. 여러 조각으로 선언을 분할하는지 그 이유를 살펴보면 대개 다음의 이유 때문인 경우가 많다. 소스코드 제어 클래스, 구조체, 인터페이스를 단일 파일 내에서 논리적으로 여러 개로 분할하여 선언하기 코드 분할 partial 키워드는 타입의 종류와 무관하..
목차2부. 타입 설계6장. 타입과 멤버의 기본정적 클래스2부. 타입 설계6장. 타입과 멤버의 기본정적 클래스C#에서는 이런 성격의 클래스를 정의하기 위한 목적으로 static 키워드를 사용하여 클래스를 선언할 수 있게 기능을 제공하고 있다.정적 클래스로 선언하면 컴파일러는 다음의 사항들을 제한한다.정적 클래스는 반드시 System.Object에서만 상속을 받도록 제한되는데 상속은 기본적으로 객체에 대해서만 정의될 수 있고, 한 단계 이상 진행되는 다른 모든 상속 타입들의 경우 상속이 가능하다고 해도 인스턴스로 만들 수 없는 이 타입에 대해 특별한 의미를 가지지 못하기 때문에 이를 제한하고 있다.정적 클래스는 인터페이스를 구현할 수 없도록 제한되는데 인터페이스 메서드는 반드시 클래스의 인스턴스로 생선될 때..