728x90
반응형
안녕하세요 아임코딩입니다.
이번에는 C#에서 제공하는 속성에 대해서 알아보겠습니다.
속성은 전용 필드의 값을 읽거나 쓰거나 계산하는 유연한 메커니즘을 제공하는 멤버입니다.
C#에서 클래스를 만들 때 필드는 private 으로 외부에서 접근할 수 없게 설정하고
필드에 대한 get set 메서드를 구현해서 필드에 대한 접근을 제어합니다.
C#에서는 get set 메서드를 쉽게 구현할 수 있도록 속성을 제공합니다.
속성은 메서드의 한 종류입니다.
예시
class Point
{
private int x;
private int y;
public int X
{
get { return x; }
set { x = value; }
}
public int Y
{
get => y;
set => y = value;
}
public string Name
{
get;set;
}
}
Point 클래스 안에는 int x, int y 필드가 존재합니다.
int x 에 대한 속성으로 public int X 를 만들고 그 안에 get set 키워드를 이용해서 get set 메서드를 구현하면 됩니다.
get { return x; }
set { x = value; }
이 두 줄으로 get set 메서드를 구현한 것과 같은 효과를 가져올 수 있습니다.
int y 에 대해서는
get => y;
set => y = value;
람다식을 이용한 속성 구현입ㄴ디ㅏ.
public string Name
{
get; set;
}
은 자동으로 구현된 속성입니다.
전체 코드
using System;
namespace Tistory
{
internal class Program
{
class Point
{
private int x;
private int y;
public int X
{
get { return x; }
set { x = value; }
}
public int Y
{
get => y;
set => y = value;
}
public string Name
{
get;set;
}
}
static void Main(string[] args)
{
Point point = new Point();
point.X = 10;
point.Y = 10;
Console.WriteLine("x : " + point.X + ", y : " + point.Y);
point.Name = "좌표";
Console.WriteLine(point.Name);
}
}
}
Main 함수에서 속성값으로 접근하는 것을 확인할 수 있습니다.
728x90
반응형
'프로그래밍 > C#' 카테고리의 다른 글
[C#] 연산자 오버로드 (0) | 2023.05.12 |
---|---|
[C#] 정적 메서드 static method (0) | 2023.05.12 |
[C#] 정적 필드 static field (0) | 2023.05.12 |
[C#] 생성자 (0) | 2023.05.12 |
[C# 문제풀이] 백준 2439 번 별찍기 (0) | 2023.05.11 |