속성 및 기본 형식과 결합
매개 변수를 기본 형식과 속성으로 전달합니다.
속성 및 기본 형식과 결합은(는) CoddyKit의 무료 C# Academy 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 C# Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. C# Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
주 생성자와 상속 결합하기
주 생성자가 있는 파생 클래스는 헤더에서 : Base(args) 구문을 사용해 매개 변수를 기본 클래스에 전달할 수 있습니다.
using System;
class Animal(string name) {
public string Name => name;
}
class Dog(string name) : Animal(name) {
public string Speak() => Name + " says Woof";
}
Console.WriteLine(new Dog("Rex").Speak()); // Rex says Woof매개 변수 일부 전달하기
파생 클래스는 base보다 많은 매개 변수를 받고 그중 관련된 매개 변수만 상위로 전달할 수 있습니다.
using System;
class Shape(string color) {
public string Color => color;
}
class Box(string color, int size) : Shape(color) {
public int Size => size;
}
var b = new Box("red", 5);
Console.WriteLine(b.Color + " " + b.Size); // red 5base에 전달할 인수 변환하기
헤더에서 파생 클래스의 매개 변수로부터 base 생성자에 전달할 인수를 인라인으로 계산할 수 있습니다.
using System;
class Label(string text) {
public string Text => text;
}
class UpperLabel(string text) : Label(text.ToUpper()) {
}
Console.WriteLine(new UpperLabel("hi").Text); // HI속성도 함께 추가하기
주 생성자와 명시적 속성을 함께 사용할 수 있습니다. 선언할 때 매개 변수로부터 속성을 초기화하세요.
using System;
class Product(string name, decimal price) {
public string Name { get; } = name;
public decimal Price { get; set; } = price;
}
var p = new Product("Book", 12m);
p.Price = 10m;
Console.WriteLine(p.Name + " " + p.Price); // Book 10base 매개 변수와 파생 클래스에서의 사용
base에 전달한 후에도 파생 클래스의 주 생성자 매개 변수를 파생 클래스 본문에서 계속 사용할 수 있습니다.
using System;
class Base(int id) {
public int Id => id;
}
class Item(int id, string label) : Base(id) {
public string Describe() => "#" + id + ": " + label;
}
Console.WriteLine(new Item(7, "Widget").Describe()); // #7: Widget레코드와 주 생성자
레코드는 주 생성자를 사용해 공개 초기화 전용 속성을 자동으로 생성합니다. 위치 지정 레코드가 가장 간결한 형태입니다.
using System;
record Person(string First, string Last) {
public string Full => First + " " + Last;
}
Console.WriteLine(new Person("Ada", "Lovelace").Full); // Ada Lovelace레코드 상속
파생 레코드는 위치에 따라 base 레코드에 매개 변수를 전달하고, 결합된 속성 집합을 생성합니다.
using System;
record Vehicle(string Make);
record Car(string Make, int Doors) : Vehicle(Make);
var c = new Car("Toyota", 4);
Console.WriteLine(c.Make + " " + c.Doors); // Toyota 4base 호출 전 유효성 검사
유효성 검사가 필요하면 throw 식을 사용하는 속성 초기화 구문에서 수행하세요. base 호출은 여전히 먼저 실행됩니다.
using System;
class Base(string tag) { public string Tag => tag; }
class Node(string tag) : Base(tag) {
public string Tag2 { get; } =
tag.Length > 0 ? tag : throw new ArgumentException("empty");
}
Console.WriteLine(new Node("a").Tag); // a캡처된 매개 변수와 속성 혼합하기
일부 매개 변수는 캡처된 비공개 상태로 유지하고 다른 매개 변수는 속성으로 노출하여 공개 인터페이스를 원하는 형태로 구성할 수 있습니다.
using System;
class Order(int id, decimal total) {
public decimal Total { get; } = total; // public
public string Reference() => "ORD-" + id; // id stays private
}
var o = new Order(42, 99m);
Console.WriteLine(o.Reference() + " " + o.Total); // ORD-42 99속성 기본값
매개 변수와 연결되지 않은 속성에도 기본 초기화 값을 지정할 수 있으므로 주 생성자 매개 변수와 자유롭게 함께 사용할 수 있습니다.
using System;
class Session(string user) {
public string User { get; } = user;
public bool Active { get; set; } = true;
}
var s = new Session("kai");
Console.WriteLine(s.User + " " + s.Active); // kai True함께 적용하기
base에 매개 변수를 전달하고 속성을 추가하며 계산된 멤버를 노출하는 파생 클래스입니다.
using System;
class Employee(string name) {
public string Name => name;
}
class Manager(string name, int teamSize) : Employee(name) {
public int TeamSize { get; } = teamSize;
public string Title => Name + " (manages " + TeamSize + ")";
}
Console.WriteLine(new Manager("Sam", 5).Title); // Sam (manages 5)빠른 확인
주 생성자가 base 클래스에 매개 변수를 전달하는 방식을 확인하세요.
요약
주 생성자를 속성 및 base 클래스와 결합하는 방법을 배웠습니다.
class D(...) : Base(args)는 base에 매개 변수를 전달합니다.- base에 전달할 인수는 인라인으로 계산할 수 있습니다.
- 선언할 때 매개 변수에서 속성을 초기화할 수 있습니다.
- 레코드는 위치 지정 매개 변수에서 공개 초기화 전용 속성을 생성합니다.
AI 튜터와 함께 C#을(를) 배우세요 — 무료
브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.
- 코스
- 93
- 레슨
- 346
자주 묻는 질문
“속성 및 기본 형식과 결합” 강의는 무료인가요?
네 — “속성 및 기본 형식과 결합” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 C# Academy 강의 전체를 잠금 해제할 수 있습니다. C# Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“속성 및 기본 형식과 결합”에서 뭘 배우나요?
매개 변수를 기본 형식과 속성으로 전달합니다. 브라우저에서 직접 실행하는 실습 코드로 C# Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
C# Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 C# Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.
“속성 및 기본 형식과 결합” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 C# Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 C# Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 클래스의 기본 생성자
- 멤버에서 매개 변수 캡처
- 구조체의 기본 생성자
- 속성 및 기본 형식과 결합