Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- unity3dservival
- c#기본문법
- 유니티상호작용
- c# c#프로그래머스
- c#기초문법
- c#코테
- c#코딩기초트레이닝
- 유니티
- 유니티게임만들기
- unity3d
- unity공부
- unity3d게임만들기
- unity게임
- 오블완
- c# 백준
- 유니티공부
- C++문법
- 티스토리챌린지
- 스파르타
- c#
- 유니티서바이벌게임만들기
- c#프로그래머스기초문법
- 스파르타코딩클럽
- 시샵
- 유니티3dui
- 시샵문법
- c#문제
- C#문법
- unity게임만들기
- Unity
Archives
- Today
- Total
나 개발자 진짜 되냐?
[ C# 기본 문법 25 ] init 이란? 본문
생성자를 공부하며 init라는 친구를
알게 되었다.
하지만..
분명 본 적은 있는데
무슨 뜻인지 모르기에
한번 정리하고 넘어가려고 한다!
init
간단하게 말하면
초기화
public void init으로도 쓰이고
프로퍼티에서는
원래는 get의 친구 set
인데
이번엔 set 대신 init라는 친구가 나온다.
이 친구는,
private보다 강력한 벽을 가진 친구로
객체 초기화를 할 때만
즉
외부에서 변경이 가능하게만 설정한 친구이다.
한번 박히면 절대 지워지지 않는...
뭐..
의료기록, 뭐 성적표, 뭐.. 등등
간단하게 정리하면
init메서드에서 프로퍼티 값을 설정하고
get으로 해당 값을 반환해 주는 역할이다.
아까 성적을 이야기했으니
좋은 예시를 하나 준비했다.
public class MyClass
{
// 자동 구현 프로퍼티와 init 접근자 사용
public int Value { get; init; }
}
class Program
{
static void Main(string[] args)
{
// 객체 초기화 시 Value 설정
MyClass myObject = new MyClass { Value = 10 };
// 프로퍼티 값 가져오기
Console.WriteLine(myObject.Value); // 출력: 10
// 다음 코드는 컴파일 오류 발생 (Value는 init 전용이므로)
// myObject.Value = 20; // 주석 처리된 코드
}
}
먼저
클래스 안에 get init를 써주고
메인에서 new로 생성해 주고
값도 10으로 받아온다.
그다음에 실행해 주면! 10이 나오는데
메인에서 만약에 20으로 바꿔주려고 아무리 애를 써도?
안된다!
왜냐면 init이기 때문!!
그렇다면 init를 함수로 써주면 어떻게 될까?
뭐 init이 초기화해주는 친구이니 비슷하겠지?
맞다!
객체의 초기화에 사용되며
생성자에서 수행하기 어려운 초기화 작업을 수행할 때 사용한다.
public class Counter
{
private int _count;
// 초기화 메서드
public void init(int initialValue)
{
_count = initialValue; // 카운트 초기화
}
// 카운트 증가 메서드
public void Increment()
{
_count++;
}
// 카운트 값 가져오기
public int GetCount()
{
return _count;
}
}
class Program
{
static void Main(string[] args)
{
Counter counter = new Counter();
// init 메서드를 통해 초기값 설정
counter.init(5);
// 카운트 출력
Console.WriteLine(counter.GetCount()); // 출력: 5
// 카운트 증가
counter.Increment();
Console.WriteLine(counter.GetCount()); // 출력: 6
}
}
init를 만들어서 리턴 없이도 초기화가 가능하다. 왕신기신기
init를 공부해 보았다.
초기화해주는 메서드인 거 잊지 말자!!
'C# 을 맛보았어요! > 문법정리를 해보았어요!' 카테고리의 다른 글
객체, 클래스, 인스턴스 차이는? (0) | 2024.10.15 |
---|---|
[ C# 기본 문법 26 ] StringBuilder 너.. 좋은 친구구나? (0) | 2024.10.08 |
[ C# 기본 문법 24 ] 직렬화 Serialization & 역직렬화 Deserialization (4) | 2024.10.02 |
[ C# 기본 문법 23 ] Nullable 과 StringBuilder (0) | 2024.09.24 |
[ C# 기본 문법 22 ] 델리게이트, 람다 및 LINQ (0) | 2024.09.23 |