2025유니티수업

0603 C#(프로퍼티, 무명형식)

버스창문 2025. 6. 3. 14:43
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