Development/C#
-
[C#] delegate와 람다식Development/C# 2023. 8. 28. 20:32
델리게이트(delegate)는 프로그래밍에서 특정한 기능을 수행하기 위해 다른 메서드를 참조하고 호출하는 데 사용되는 개념입니다. 델리게이트는 일종의 메서드 포인터 또는 메서드를 가리키는 참조 변수로 생각할 수 있습니다. 다른 말로는 "메서드 혹은 함수를 참조하는 타입"이라고도 합니다. 델리게이트를 사용하면 메서드를 다른 메서드의 인수로 전달하거나, 메서드를 변수에 할당하거나, 메서드를 이벤트 처리기로 사용할 수 있습니다. 델리게이트의 기본 구조는 다음과 같습니다: delegate 반환타입 델리게이트이름(매개변수); - `반환타입`: 델리게이트가 가리키는 메서드의 반환 타입을 지정합니다. - `델리게이트이름`: 델리게이트의 이름을 정의합니다. - `매개변수`: 델리게이트가 가리키는 메서드의 매개변수 목록..
-
[C#] 순환참조Development/C# 2023. 8. 16. 09:38
C# 및 .NET 프레임워크에서 순환 참조(circular reference)란, 두 개 이상의 클래스나 어셈블리가 서로를 참조하여 무한 루프가 발생하는 상황을 의미합니다. 이는 일반적으로 문제를 일으키며, 프로그램 실행 시 예기치 않은 동작을 유발할 수 있습니다. 순환 참조의 예를 들어보겠습니다: // Assembly A using B; class AClass { public void MethodA() { BClass bInstance = new BClass(); bInstance.MethodB(); } } // Assembly B using A; class BClass { public void MethodB() { AClass aInstance = new AClass(); aInstance.Metho..
-
[프렉티컬 C#] 날짜와 시간 처리Development/C# 2023. 7. 28. 16:46
DateTime 구조체 - DateTime 형은 불변객체 (string 형도 불변 객체) DateTime 구조체 (System) 일반적으로 날짜와 시간으로 표현된 시간의 한 순간을 나타냅니다. learn.microsoft.com DateTime 객체 생성 // 연, 월,일까지만 생성하거나 DateTime date1 = new DateTime(2010, 8, 18); // 시, 분, 초까지 생성할 수 있다. DateTime date2 = new DateTime(2010, 8, 18, 8, 45, 20); DateTime.Today - 현재의 날짜만 반환한다. - 시각 정보는 포함하지 않는다. (시간 구성 요소가 00:00:00으로 설정) - 시간을 제외한 현재 날짜만 반환 하기 때문에 날짜만 사용하는 애플..
-
[C#] 인덱서Development/C# 2023. 7. 27. 15:33
인덱서 - 인덱서를 사용하면 배열과 유사한 방식으로 개체를 인덱싱할 수 있습니다. - get 접근자는 값을 반환합니다. set 접근자는 값을 할당합니다. - this 키워드는 인덱서를 정의하는 데 사용됩니다. - value 키워드는 set 접근자가 할당하는 값을 정의하는 데 사용됩니다. using System; class SampleCollection { // Declare an array to store the data elements. private T[] arr = new T[100]; // Define the indexer to allow client code to use [] notation. public T this[int i] { get { return arr[i]; } set { arr[i..
-
[프렉티컬 C#] DictionaryDevelopment/C# 2023. 7. 27. 13:34
HashSet 클래스 - Dictionary와 비슷하지만 키 부분만 저장하고 값은 저장하지 않는다. - 중복을 허용하지 않는다. - 요소를 꺼내는 순서는 정해져 있지 않아서 등록한 순서로 나온다는 보장이 없다. - Add 메서드는 요소가 객체에 추가되면 true를 반환하고 이미 존재하는 경우에는 예외를 발생시키지 않고 false를 반환한다. Dictionary 제네릭 클랙스 - 해시 테이블이라는 데이터 구조로 만들어진 클래스 - 키와 이 키에 대응하는 값을 여러 개 저장할 수 있는 컬렉션 - 배열이나 리스트와 비교했을 때 키를 사용해 값을 구하므로 속도가 가장 빠르다. 딕셔너리 초기화 var abcDic = new Dictionaray() { { "abc", 400 }, { "def", 300 }, { ..
-
[프렉티컬 C#] 배열과 List<T>Development/C# 2023. 7. 26. 15:15
여러 요소를 한꺼번에 관리할 수 있게 해주는 데이터 구조는 배열과 컬렉션이 있다. 컬렉션 - Group of objects - Collections provide a more flexible way to work with groups of objects. Unlike arrays, the group of objects you work with can grow and shrink dynamically as the needs of the application change. Collections (C#) Learn about collections in C#, which are used to work with groups of objects. Collections can grow and shrink dynami..
-
[프렉티컬 C#] 문자열 처리Development/C# 2023. 7. 26. 01:24
문자열 비교 대소문자 구별 : == 연산자 사용 대소문자 구별 없이 : String.Compare 정적 메서드 사용 Compare(String, String, Boolean, CultureInfo) 대/소문자를 구분하거나 구분하지 않고 지정된 두 String 개체를 비교하여 정렬 순서에서 두 개체의 상대 위치를 나타내는 정수를 반환합니다. 문화권별 정보가 비교에 영향을 줍니다. public static int Compare (string? strA, string? strB, bool ignoreCase); 매개 변수 strA 비교할 첫째 문자열입니다. strB 비교할 둘째 문자열입니다. ignoreCase 비교 시 대/소문자를 무시하려면 true이고, 그러지 않으면 false입니다. C# 4.0 이후 버..
-
[프렉티컬 C# 연습문제] 2부 - 1장Development/C# 2023. 7. 25. 01:16
관용구 1. 변수,배열,리스트,객체 선언과 초기화는 동시에 이뤄져야 하는 것이 원칙 // 변수 var age = 25; // 배열, 리스트 // 마지막 요소 뒤에 콤마 붙이면 요소를 바꾸거나 추가할 때 편함 var langs = new string[] {"C#", "VB", "C++",}; var nums = new List {10,20,30,40,}; // Dictionary var dict = new Dictionary() { {"ko", "한국어"}, {"en", "영어"}, {"es", "스페인어"} }; // or after C# 6.0 var dict = new Dictionary() { ["ko"] = "한국어", ["en"] = "영어", ["es"] = "스페인어" }; // 객체 var..