C#교과서 마스터하기 28. 인덱서와 반복기
https://www.youtube.com/watch?v=IuCfuPRe6Rk&list=PLO56HZSjrPTB4NxAsEP8HRk6YKBDLbp7m&index=62
1. 인덱서와 반복기
01. 인덱서(Indexer)
- 클래스의 인스턴스를 배열처럼 사용할 수 있도록 해주는 구문
- 개체를 배열 형식으로 표현하고자 할 때 사용
- 속성의 배열형
- 배열의 인덱스 접근방식인 개체명[0], 개체명[1] 식으로 개체의 속성(Property)에 접근
- 자동차 개체를 예를 든다면 자동차 카탈로그(광고지)와 같이 자동차에 대한 인덱스(목차)를 표현하는 방법과 같은 의미
- 인덱서는 똑똑한 배열이라고도 함
- 오버로드 가능
- 인덱스와 배열의 차이
02. 반복기(Iterator)
- 컬렉션의 항목을 단계별로 실행하는데 사용되는 구문
2. 프로젝트
- yield는 생산하다라는 뜻과 함께 양보하다라는 뜻도 가지고 있습니다
- 즉, yield를 사용하면 값을 함수 바깥으로 전달하면서 코드 실행을 함수 바깥에 양보
using System;
using static System.Console;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
namespace testProject
{
class Car
{
// 필드
private string[] names;
// 매개변수가 있는 생성자
public Car(int length)
{
names = new string[length];
}
// 인덱서
public string this[int index]
{
get { return names[index]; }
set { names[index] = value; }
}
// 반복기
public IEnumerator GetEnumerator()
{
for(int i = 0; i < names.Length; i++)
{
yield return names[i];
}
}
}
class Program
{
static void Main()
{
// 인스턴스 생성
Car cars = new Car(3);
// 인덱서
cars[0] = "레이";
cars[1] = "제네시스";
cars[2] = "k3";
// 반복기
// yield는 생산하다라는 뜻과 함께 양보하다라는 뜻도 가지고 있습니다
// 즉, yield를 사용하면 값을 함수 바깥으로 전달하면서 코드 실행을 함수 바깥에 양보
foreach (var car in cars)
{
WriteLine(car);
}
}
}
}
- 속성의 배열형
- 오버로드 가능
- yield는 생산하다라는 뜻과 함께 양보하다라는 뜻도 가지고 있습니다
- 즉, yield를 사용하면 값을 함수 바깥으로 전달하면서 코드 실행을 함수 바깥에 양보
using System;
using static System.Console;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
namespace testProject
{
class Car
{
// 필드
private string[] names;
// 매개변수가 있는 생성자
public Car(int length)
{
names = new string[length];
}
// 인덱서
public string this[int index]
{
get { return names[index]; }
set { names[index] = value; }
}
// 반복기
public IEnumerator GetEnumerator()
{
for(int i = 0; i < names.Length; i++)
{
yield return names[i];
}
}
}
class Program
{
static void Main()
{
// 인스턴스 생성
Car cars = new Car(3);
// 인덱서
cars[0] = "레이";
cars[1] = "제네시스";
cars[2] = "k3";
// 반복기
// yield는 생산하다라는 뜻과 함께 양보하다라는 뜻도 가지고 있습니다
// 즉, yield를 사용하면 값을 함수 바깥으로 전달하면서 코드 실행을 함수 바깥에 양보
foreach (var car in cars)
{
WriteLine(car);
}
}
}
}
Author And Source
이 문제에 관하여(C#교과서 마스터하기 28. 인덱서와 반복기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ansalstmd/C교과서-마스터하기-28.-인덱서와-반복기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)