목록
반응형
전체 글 (
반응형
107)
개발꿈나무
인덱서와 반복기 인덱서: 클래스의 인스턴스를 배열처럼 사용할 수 있도록 하는 구문 반복기: 컬렉션 항목을 단계별로 실행하는 데 사용하는 구문 인덱서 인덱서(indexer)는 속성 여러개를 하나로 표현하거나 개체를 배열 형식으로 표현할 때 사용한다. 배열의 인덱스 접근 방식인 개체이름[0], 개체이름[1] 식으로 개체 속성 또는 멤버에 접근할 수 있게 한다. using System; class Catalog { //[1] 정수형 인덱서: this[int index] 형태로 정의되어 개체명[0], 개체명[1] 형태로 호출됨 public string this[int index] { get { return (index % 2 == 0) ? $"{index}: 짝수 반환" : $"{index}: 홀수 반환"; }..
속성 사용하기 속성은 필드 값을 읽거나 쓰고 계산하는 방법을 제공하는 클래스 속성을 나타내는 멤버 속성 클래스의 멤버 중에서 속성(property)은 단어 그대로 클래스 속성(특징, 성격, 색상, 크기 등)을 나타낸다. 속성은 괄호가 없는 메서드와 비슷하고 개체 필드 중에서 외부에 공개하고자 할 때 사용하는 방법이다. private 성격이 있는 필드를 public 속성으로 외부에 공개할 때 사용한다. 클래스 안에 선언된 필드 내용을 설정(set)하거나 참조(get)할 때 사용하는 코드 블록을 속성이라고 한다. Class 클래스 이름 { public [반환형식] 속성이름 { get; set; } } 속성 정의 구문의 마지막에는 ;(세미콜론)이 붙지 않지만 속성을 선언과 동시에 초기화할 때는 세미콜론이 붙는..
메서드와 매개변수 C#에서는 모든 함수를 클래스 내에 선언하기에 함수 대신에 메서드(method)라고 한다. 메서드는 클래스가 수행할 수 있는 기능들을 이름 하나로 묶어 관리하는 코드 블록을 의미한다. 메서드 클래스 내에서 선언된 함수(function, sub procedure)를 메서드라고 한다. 특정한 코드를 묶어 실행할 때 사용하는 코드 블록이 메서드이다, 메서드는 개체가 수행할 수 있는 기눙, 동작, 행위 등을 의미한다. 자동차의 동작/기능인 전진, 후진, 좌회전과 같은 의미가 같은 기능을 구현할 때 사용한다. 메서드 이름은 동사+명사 형태를 권장한다. EX) GetPrice(), SetPrice() 정적 메서드와 인스턴스 메서드 정적 메서드: static 키워드를 붙이면 정적 호출이 가능하며 클..
생성자 생성자 생성자는 단어 그대로 개체를 생성하면서 무엇인가를 하고자 할 때 사용되는 메서드로 개체를 초기화(주로 클래스 내 필드를 초기화)하는 데 사용된다. 생성자는 생성자 이름이 클래스 이름과 동일하다는 규칙이 있다. 생성자는 매개변수가 없는 기본(default) 생성자가 있고, 매개변수를 원하는 만큼 정의해서 사용할 수 있는데 이 때 반환값은 가지지 않는다. 생성자도 static 생성자(정적 생성자)와 public 생성자(인스턴스 생성자)로 구분되며, 일반적으로 인스턴스 생성자를 많이 사용한다. 모든 클래스는 적어도 생성자 하나를 가지는데, 사용하지 않는 기본 생성자는 코드에서 생략 가능하다. 클래스 내에서 생성자를 자동으로 만들어주는 코드 조각(단축키)는 ctor을 입력한 수 Tab을 두 번 누..
네임스페이스 네임스페이스 네임스페이스는 프로그램 규모가 커질 때 클래스 이름이 충돌하는 것을 방지하도록 클래스를 모아서 관리하는 개념 인터넷 도메인 주소를 사용하여 웹사이트를 구분하듯, 네임스페이스를 달리하여 이름이 동일한 클래스를 하나의 프로젝트에서 사용할 수 있게 할 수 있다. 네입스페이스의 특징 서로 관련 있는 클래서, 구조체, 열거형 등의 형식과 또 다른 네임스페이스 등을 묶어 관리해주는 개념 클래스 이름이 중복되는 것을 방지 클래스를 계층형으로 묶어 관리 가능 네임스페이스는 패키지란 단어와 의미가 비슷하며, 관련 있는 형식의 묶음 네임스페이스 만들기 namespace 네임스페이스이름 { //클래스 등의 정의가 들어옴 } using System; namespace Foo { public class..
특정 날짜의 주를 가져오는 코드는 다음과 같다. CultureInfo myCI = new CultureInfo("en-US"); Calendar myCal = myCI.Calendar; CalendarWeekRule myCWR = myCI.DateTimeFormat.CalendarWeekRule; DayOfWeek myFirstDOW = myCI.DateTimeFormat.FirstDayOfWeek; var week = myCI.GetWeekOfYear(DateTime.Now, myCWR, myFirstDOW); Calendar.GetWeekOfYear(DateTime, CalendarWeekRule, DayOfWeek) 메서드 (System.Globalization) 지정된 DateTime 값의 날짜가..
개체 만들기 개체(오브젝트)는 설계도인 클래스에서 만든 인스턴스(실체, 구성 요소) 하나를 의미 클래스와 개체 class 키워드로 생성한 것을 클래스라고 하며, 이러한 클래스를 new 키워드를 사용하여 새로운 이름으로 만든 것을 개체라고 한다. using System; //[1] ClassCode 이름의 클래스(Class) 만들기 public class ClassCode { // Empty } class ClassAndObject { static void Main() { //[2] 특정 클래스로부터 objectCode1, objectCode2 이름의 개체(Object) 만들기 ClassCode objectCode1 = new ClassCode(); Console.WriteLine(objectCode1.G..
알고리즘과 절차 지향 프로그래밍 알고리즘(algorithm)은 문제를 해결하는 일련의 절차나 방법을 공식으로 표현한 풀이법이다. 알고리즘 알고리즘은 '문제 해결 능력'이다. 프로그램의 가장 작은 단위는 일반적으로 입력(input) - 처리(process) - 출력(output) 단계를 거치는데, 여기서 처리 단계가 알고리즘 단계이다. 합계 구하기: SUM 알고리즘 using System; class SumAlgorithm { static void Main() { //[1] Input: n명의 점수 int[] scores = { 100, 75, 50, 37, 90, 95 }; int sum = 0; // 합계가 담길 그릇 //[2] Process: 합계 알고리즘 영역: 주어진 범위에 주어진 조건(필터링) ..
LINQ LINQ(링크)는 Language INtegrated Query의 약어로, C#에서 컬렉션 형태의 데이터를 가공할 때 유용한 메서드를 많이 제공한다. 확장 메서드 사용하기 닷넷에서 LINQ 확장 메서드를 사용하려면 System.Linq 네임스페이스를 선언해야 한다 Sum(): 숫자 배열 또는 컬렉션의 합 Count(); 숫자 배열 또는 컬렉션의 건수 Average(): 숫자 배열 또는 컬렉션의 평균 Max(): 최댓값 Min(): 최솟값 Sum() 메서드로 배열의 합 구하기 using System; using System.Linq; class LinqSum { static void Main() { int[] numbers = { 1, 2, 3 }; int sum = numbers.Sum(); C..
널(null) 다루기 프로그래밍 언어에서 널(Null, NULL, null, nil)은 아무것도 없는 상태를 나타낸다. 개체가 아무것도 참조하지 않는 것을 null 참조라고 한다. null 값 아무런 값이 없음 참조형 변수에 아무런 값을 설정하지 않음 알려지지 않은 값으로 아무 의미가 없거나 모르는 값, 값이 없음을 의미 변수가 아무런 값도 가리키고 있지 않음 변수가 이름만 만들고 아무런 참조도 하지않음 개체가 만들어지고 아무런 값도 참조하지 않음을 나타냄 영어 단어로는 undefined 빈 값(Empty, "")과는 다름 null 가능 형식: Nullable 형식 기본 제공 형식을 null이 가능한 형식으로 변경하려면 Nullable 제네릭 형식을 사용한다. Nullable 형식을 줄임 표현하는 방법은..