class MyClass
{
//C#버전(프로퍼티)
public int myField { get; private set; }
//C++버전
private int myField2;
public int GetMyField() // getter함수
{
return myField2;
}
public void SetMyField(int value) // setter함수
{
myField2 = value;
}
}
class YourClass
{
private int myField;
public int MyField
{
get { return myField; }
set { myField = value; }
}
//이렇게 적어도 위에 C++형식으로 적은걸로 취급된다
public int myField2 { get; set; }
}
public class NameCard
{
public string Name
{
get; set;
}
public string PhoneNumber
{
get; set;
}
}
NameCard nameCard = new NameCard()
{
Name = "Test",
PhoneNumber = "Test"
};
//이렇게도 사용 가능
무명형식
var obj =
new
{
Name = "asdf"
};
var b =
new
{
Subject = "15",
Score = 57
};
Console.WriteLine($"{b.Subject} : {b.Score}");
따로 클래스 선언하지 않고 프로퍼티 식으로 이용
한번쓰고 버릴걸 저런식으로 씀
인터페이스에서의 프로퍼티
interface INamedValue
{
string Name { get; }
string Value { get; }
//인터페이스는 구현부가 없어서 이건 자동 완성 프로퍼티가 아님
}
class NamedValue : INamedValue
{
public string Name { get; private set; }
public string Value { get; private set; }
public NamedValue(string name , string value)
{
Name = name;
Value = value;
}
}
인터페이스 내에선 프로퍼티에 private선언이 불가능함

protected는 가능하지만, 상속받을땐 public취급이기 때문에 클래스쪽에서 private가 불가능함

단, 아예 인터페이스쪽에서 set을 선언해두지 않으면,
클래스에선 private set으로 선언 가능

추상클래스에서의 프로퍼티
abstract class Product
{
private static int serial = 0;
public string SerialID
{
get { return string.Format("{0:d5}" , serial++); }
}
abstract public DateTime ProductDate { get; set; }
//추상 메서드를 프로퍼티식으로 만든 모습
}
'2025유니티수업' 카테고리의 다른 글
| 0605 C#(2차원, 3차원 배열, 대리자) , 유니티(코루틴) (0) | 2025.06.05 |
|---|---|
| 0604 C#(List, (0) | 2025.06.04 |
| 0519 플로우 작성 / 세부 설정 (0) | 2025.05.19 |
| 0515 기획 (0) | 2025.05.15 |
| 0514 GitHub 데스크톱 , 유니티 FPS (0) | 2025.05.14 |