728x90 반응형 Program Language71 C# 키워드 : delegate, event, action delegate C/C++에는 함수를 가리키는 함수 포인터가 있다. 이를 사용하면 함수를 인수로 전달하거나 함수를 반환하는 등 다양한 방식으로 함수를 조작할 수 있는데 C#에서는 포인터를 직접적으로 사용할 수 없다. 그래서 C#에서 함수 포인터를 대신하는 개념으로 메서드를 참조하는 형식의 변수를 선언할 수 있도록 delegate를 사용한다. delegate는 함수 포인터와 비슷한 개념으로 메서드에 대한 참조를 저장하여 메서드를 인수로 전달하거나 메서드를 반환하는 등의 작업을 수행할 수 있다. 메서드 자체를 하나의 변수로 다룰 수 있기 때문에 코드 자체를 참조하는 개념으로 볼 수 있다. 선언 delegate void DelegateDefault(); delegate int DelegateReturn(); .. 2023. 1. 31. C# 상수 키워드 : const const 상수라는 뜻을가지는 Constant에서 따온 키워드이다. 상수란 프로그래밍에서 변하지 않는 값을 의미하는데 한번 값이 정해지면 프로그램이 실행되는 동안 그 값은 항상 일정하다. 컴파일 타임에 값이 결정되므로 런타임 시 메모리를 사용하지 않게 되어 상수를 사용하면 메모리 사용을 줄일 수 있다. public class Program { public static void Main(string[] args) { const int A = 10; A = 10; // Compiler Error CS0131 } } const 키워드로 선언된 변수는 상수로 취급되기 때문에 값을 재할당하면 컴파일 에러가 뜬다. 따라서 상수는 코드 흐름에서도 바뀔 필요가 없고 일정하게 사용될 값이 필요할 때 사용한다. liter.. 2023. 1. 31. C# 비동기화 키워드 : async, await async 메서드, 람다 표현식 또는 무명 메서드를 비동기로 특정할 수 있다. 메서드나 표현식에 async 제한자가 붙으면 비동기식 메서드라고 한다. public async Task ExampleMethodAsync() { string contents = await NetworkManager.GetData(url); } async만 사용한다고 메서드가 비동기로 작동하는 것은 아니며 첫 번째 await 표현식을 만날 때까지 동기적으로 실행된다. await의 동작이 완료될 때까지 메서드는 대기하게 되고 메서드 호출자는 다음 동작을 진행하게 된다. async 키워드로 선언된 비동기 메서드가 await 표현식이나 구문이 포함되어있지 않으면 컴파일러는 경고를 띄우게 된다. 비동기 메서드의 반환형은 Task , T.. 2023. 1. 31. Sync, Async 동기와 비동기는 데이터를 주고 받는 방식에 대한 개념이다. 동기(Synchronous) 동시에 일어나다. 요청과 결과가 동시에 일어난다는 의미를 가진다. 즉 요청을 하게되면 시간이 얼마나 걸리던지 요청한 자리에서 대기한 후 결과가 주어져야 다음으로 넘어가게된다. - 설계가 간단하고 직관적이다. - 결과가 주어질 때까지 대기해야한다. 비동기(Asynchronous) 동시에 일어나지 않는다. 요청과 결과가 동시에 일어나지 않는다는 의미이다. 즉 요청한 자리에서 결과가 주어지지 않으며 작업 처리 단위를 동시에 맞추지 않아도 된다. - 동기보다 복잡하다. - 결과가 주어지는 시간 동안 다른 작업을 할 수 있다. 동기는 요청 이후 확실하게 결과 확인이 필요한 상황에서 사용되고 비동기 방식은 요청 이후 결과가 언제.. 2023. 1. 26. C# 클래스 추상화 키워드 : abstract abstract 추상적인 구현이 완전하지 않은 상태임을 타나내는 키워드이다. 클래스, 메서드, 프로퍼티, 인덱서, 이벤트와 함게 사용될 수 있다. 일반적으로 추상 클래스를 구현하는데 사용되며 자체적으로는 인스턴스화 되지 않고 파생된 비추상 클래스에 의해 구현되어 사용된다. abstract class Person { public abstract int GetInfo(); } class Joon : Person { private int m_age; public Joon(int age) => m_age = age; public override int GetInfo() => m_age; } public class Program { static void Main(string[] args) { // Error, c.. 2023. 1. 25. Reserved Word, Keyword 예약어 예약어는 식별자로 사용할 수 없는 문자를 뜻한다. 현재 또는 향후 사용될 문자까지 예약어로 등록되기도 한다. *식별자(identifier) 변수, 함수, 클래스 등의 이름을 지정하는데 사용되는 문자열 키워드 컴파일러에게 특별한 의미를 가지고 있는 문자이다. 키워드가 가지는 특징은 언어마다 다른데 키워드를 식별자로 사용할 수 있는 경우도 있고 그렇지 않은 경우도 있다. 두 개념을 명확하게 구분짓는게 애매하다. 어떤 언어에서는 모든 키워드가 예약어로 되어있어 키워드를 식별자로 사용하는게 불가능하지만 또 일부 언어에서는 키워드를 식별자로 사용하기도 하기 때문에 키워드를 예약어로 단정할 수 없고 예약어 또한 현재 사용중이 아닌 문자도 사용을 못하게 하는 경우가 있기 때문에 모든 예약어가 키워드처럼 의미를.. 2023. 1. 20. 이전 1 ··· 8 9 10 11 12 다음 728x90 반응형