C# - 멀티쓰레딩 장점 & 단점 Advantages and disadvantages of multi-threading 장점 : - 반응형 사용자 인터페이스에 적합하다. - I/O 작업이 완료될 때 까지 기다리는 동안의 시간을 효율적으로 사용할 수 있다. - 다중 코어/프로세서가 있는 시스템에서 동시에 처리할 작업을 분할 할 때 단점 : - 단일 코어/프로세서에서는 성능에 부정적인 영향을 끼칠 수 있다. - 같은 작업을 수행할 때 더 많은 코드가 필요 - 멀티쓰레딩은 만들기도 어렵고, 이해하기도 어렵고, 디버그 와 유지 & 보수가 어렵다. Language/C# 2021.02.04
C# - 딕셔너리 , 리스트 컬렉션 메소드 딕셔너리 Dictionary 1 . TryGetValue() 2. Count() 3. Remove() 4. Clear() - Using LINQ extension methods with Dictionary - Different ways to convert an array into a dictionary 리스트 컬랙션 클래스 List collection class Contains() function Exists() function Find() function - 지정된 람다 표현식 해당하는 요소를 찾는데 첫번째로 매치되는 리스트의 요소를 가져옴 FindLast() function - 위와 같이 지정된 람다 표현식으로 매치되는 값을 가져오는데 마지막에 있는 값을 가져옴. FindAll() function -.. Language/C# 2021.02.03
C# - 부분, 분할, 파샬, 파셜 클래스 규칙Partial Class - 다른 파일에 있는 모든 파츠는 Partial 키워드를 사용해야 한다. All the parts spread across different files, must use the partial keyword. - 다른 파일에 있는 모든 파츠는 같은 엑세스 수정자를 가지고 있어야 한다. All the parts spread across different files, must have the same access modifiers. - 만약 어떤 파츠라도 추상으로 선언되었다면, 전체가 다 추상으로 간주되어진다. If any of the parts are declared abstract, then the entire type is considered abstract. - 만약 어떤 파츠라도 sealed로 선언되.. Language/C# 2021.01.22
C# - System.String 과 StringBuilder 차이 System.String 은 불변성이고 StringBuilder는 가변성을 가지고 있다. 예시) string에 더했을때, 모든 값이 메모리에 남아있다. using System; using System.Text; namespace ISTJ { public class MainClass { public static void Main() { String userString = "아름다운"; userString += " 이강산을"; userString += " 지키는"; userString += " 우리"; userString += " 사나이 기백으로"; userString += " 오늘을 산다."; Console.WriteLine(userString.ToString()); } } } 예시) StringBuild.. Language/C# 2021.01.22
C# - ToString()과 Convert.Tostring() 사용법 ToString()은 Null 핸들이 안되고 Convert.ToString()은 Null값이 핸들이 된다. Language/C# 2021.01.22
C# - 제네릭 Generics Generics are introduced in c# 2.0. Generics allow us to design classes and methods decoupled from the data types. Generic classes are extensively used by collection classes available in System.Collections.Generic namespace. 메소드나 클래스를 지정할 때에 형식에 자유롭게 하고 실행시킬때에 지정하여 주는 것. 아래의 예시는 클래스에 제네릭을 넣었다. class 정의할때에 가 옆에 들어갔고 그래서 위에 클래스를 불러올때에 옆에 라고 타입을 넣어준 모습 using System; namespace ISTJ { public class Mai.. Language/C# 2021.01.22
C# - 타입 과 타입 멤버들 type과 type member들이 있는데 일반적으로 type은 class, struct, enums, interfaces, delegate가 있고, type member에는 fields, properties, constructors, methods 등이 있다. c#에는 5가지 다른 access modifiers가 있다. - Private - Protected - Internal - Protected Internal - Public Type member는 모든 access modifiers를 가질 수 있다. Type은 internal과 public만 가능하다. Private - 오직 그 포함된 클래스 안에서만 접근 가능 Public - 제한 없음. 어디서든 접근 가능 Protected - 포함된 타입이던.. Language/C# 2021.01.21
C# - 메서드, 메소드 (Methods) 메서드(Methods) 메소드(Methods)는 함수(Functions)라고도 불린다. 같은 의미로 씀. 메소드는 정말 유용하게 쓰인다. 한번의 로직 정의로 많은 곳에서 쓸 수 있기 때문이다. 메소드는 우리의 어플리케이션을 좀 더 쉽게 유지보수할 수 있게 도와준다. MSDN의 설명 메서드는 일련의 문을 포함하는 코드 블록입니다. 프로그램을 통해 메서드를 호출하고 필요한 메서드 인수를 지정하여 문을 실행합니다. C#에서는 실행된 모든 명령이 메서드의 컨텍스트에서 수행됩니다. Main 메서드는 모든 C# 애플리케이션의 진입점이고 프로그램이 시작될 때 CLR(Common Language Runtime, 공용 언어 런타임)에서 호출됩니다. Language/C# 2021.01.15
C# - 추상 클래스와 인터페이스 차이, 다중 상속 인터페이스는 퍼블릭(Public)이 기본 값이고 추상 클래스(Abstract class)는 프라이빗(Priviate)이 기본값이다. 인터페이스는 필드를 가질 수 없고 메소드를 정의할 수 없다. 인터페이스는 다른 인터페이스만 상속 받을 수 있고, 추상 클래스는 다른 추상 클래스나 다른 인터페이스 둘 다 상속 받을 수 있다. 다중 상속 문제(Problems of Multiple Class inheritance) 다이아몬드 문제라고도 한다. 모호함이 문제가 되는 것이다. 어떤 것이 선택되어질지 , 한 개의 부모 클래스를 두개의 자식 클래스가 상속 받는다. 그리고 그 두개의 자식 클래스를 한 개의 자식 클래스가 상속 받을 때 생긴다. 이러한 문제를 해결하기 위해 나온 것이 인터페이스(Interface)이다. 굳.. Language/C# 2021.01.15
C# - 데이터 변환(convert, parse,tryparse), 어레이(Array), 주석(Comments), 이프(If),논리 연산자(Logical Operator), Switch , While, Do while Loop statement int32.parse(스트링인 숫자) : 변환된 것을 리턴함. int32로 변환이 됨. convert.toint32 : 기본 데이터 타입 -> 기본 데이터 타입. int.TryParse(스트링인 숫자 , out [저장될 변수]) - 넣은 문자열로 되어있는 숫자가 지정한 변수에 저장이 되고 이 함수 자체는 True or False를 리턴한다. 어레이 Array using System; class Program { static void main() { int[] Numbers = new int[3]; //int인 array를 Numbers란 변수에 만듬. 이 array는 3개의 값만 받음; Numbers[0] = 10; Numbers[1] = 11; Numbers[2] = 12; } } 지정한 갯수보다 더 .. Language/C# 2021.01.05