modifier

C#/Language

C# - Language - Ref keyword (Parameter modifier)

Introduction ref 키워드는 참조 매개 변수를 의미한다. in 키워드와 마찬가지로 메서드에 전달되기 전 초기화가 필요하다. ref 키워드를 통해 넘겨진 매개 변수는 호출된 메서드에서 읽기 / 쓰기가 가능하다. ref 매개 변수는 메서드 정의와 호출 모두 명시적으로 사용해야 한다. 다음 요소가 포함된 메서드에는 in, ref, out 키워드 사용이 불가능하다. async yield return, yield break 확장 메서드에는 다음과 같은 제약이 있다. 첫 번째 인수가 ref struct가 아니거나 구조체로 제한되지 않은 제네릭 형식인 경우 사용 불가 ref readonly 키워드를 통해 읽기 전용으로 참조를 전달할 수 있다 (C# 12) Example // 값 형식 struct Test ..

C#/Language

C# - Language - Out keyword (Parameter modifier)

Introduction out 키워드는 쓰기 전용 참조 매개 변수를 의미한다. 메서드에 전달되기 전 할당은 선택사항이며, 선언된 out 파라미터는 리턴 전 값을 할당해야 한다. in 키워드와 달리, out 키워드는 호출 시 반드시 입력해야 한다. out 키워드를 사용하여 여러 값을 반환할 수 있다. 대안으로 튜플 형식 (System.ValueTuple)을 사용할 수도 있다. 다음 요소가 포함된 메서드에는 in, ref, out 키워드 사용이 불가능하다. async yield return, yield break 확장 메서드에는 다음과 같은 제약이 있다. 첫 번째 인수에는 out 키워드 사용 불가 Example public static void Foo(out int value) { value = 10; } ..

C#/Language

C# - Language - In keyword (Parameter modifier)

Introduction in 키워드는 읽기 전용 참조 매개 변수를 의미한다. 메서드에 전달되기 전 초기화가 필요하다. 읽기 전용 매개 변수가 되기 때문에 호출된 메서드 내부에서는 쓰기가 불가능하다. 참조 매개 변수로 전달되므로, 큰 크기의 값 형식 데이터를 넘기는 데 활용할 수 있다. 메서드 선언 시 in 키워드를 지정하지만, 호출 사이트에서는 일부러 키워드를 넣을 필요는 없다. in 키워드가 없는 메서드가 있는 경우에는 키워드를 넣어주어야 한다. 다음 요소가 포함된 메서드에는 in, ref, out 키워드 사용이 불가능하다. async yield return, yield break 확장 메서드에는 다음과 같은 제약이 있다. 첫 번째 인수가 구조체일 때만 사용 가능 첫 번째 인수가 제네릭인 경우 사용 불..

C#/Language

C# - Language - Event

Introduction event 한정자는 객체에서 사건이 발생했을 때 다른 객체에 알려주는 역할을 한다. event는 특수한 종류의 멀티캐스트 대리자로 여러 객체에서 구독하는 것이 가능하다. event의 처리는 메서드 또는 람다 식을 통해 정의한다. 액세스 한정자를 적용할 수 있으며, 파생 클래스에서 상속받아 재정의 하는 것이 가능하다. event는 GUI 및 비동기식 로직 처리 등에 활용된다. Example // Declare & invoke event public class FooArgs : EventArgs { public FooArgs(int a) => A = a; public int A { get; set; } } public class Pub { public event EventHandler..

C#/Language

C# - Language - 액세스 한정자 (Access modifiers)

1. Introduction Access Modifiers (액세스 한정자) 는 형식 또는 멤버의 접근성을 지정할 때 사용한다. C#에 있는 한정자는 총 5가지로 이를 조합하여 7가지의 접근성 수준을 지정할 수 있다. 2. 액세스 한정자 C#에 있는 액세스 한정자는 아래와 같다. 항목 비고 public protected internal private file C# 11 (.NET 7) 이를 이용하여 지정할 수 있는 접근성 수준은 아래와 같다. 항목 접근성 범위 비고 public 제한 없음 protected 파생된 형식 internal 선언 어셈블리 private 선언 형식 file 코드 파일 단위 C# 11 (.NET 7) protected internal 선언 어셈블리 또는 파생된 형식 private ..

Peponi_
'modifier' 태그의 글 목록