목록IT (29)
미처 완성되지 못한 알고리즘
C#에서 배열을 매개변수로 넘길 때 '어떤 자료형의 배열'이던 간에 그 배열의 사이즈만큼 복사해서 메모리에 잡힌다. 예) public void Array(int[] Array) {} main() { int[] a = new int[5]; Array(a); } 이 경우 int형 배열의 사이즈만큼 복사해서 매개변수를 넘겨준다. 이 것은 참조타입인 클래스 배열도 마찬가지다. 클래스 배열을 매개변수로 넘길 시, 그 클래스 배열의 길이와 사이즈 만큼 힙 영역에 '따로' 잡혀서 복사가 일어난다. 이 경우 같은 메모리를 참조하기 위해서 ref 키워드를 붙여준다. 예) public void Array(ref int[] array) {} main() { int[] a = new int[5]; Array(ref a); }
#region 내용 이름 변수 선언 #endregion 설명) 접기가 가능하여 변수별로 묶거나 함수별로 묶을 수 있다. 내용 이름 부분은 띄어쓰기가 가능하다. 소스 정리하는데 도움이 된다.
1.Thread의 인스턴스를 생성하면서 매개변수로 스레드가 실행할 메소드를 매개 변수로 넘긴다.2.Thread.Start() 메소드를 호출하여 스레드를 시작한다.3.Thread.Join() 메소드를 호출하여 해당 스레드가 끝날 때까지 기다린다. 예) using System.Threading; namespace ConsoleApp1{ class Program { public void Func() { for (int i = 0; i < 100; i++) Console.WriteLine("{0}", i); } static void Main(string[] args) { Program p1 = new Program(); Thread t1 = new Thread(p1.Func); ------------------..
LINQ는 개인적인 사견으로 간단히 얘기하면 C#에서 SQL같은 쿼리문으로 특정 데이터들의 집합을 추출해내는 문법이다. 주의: LINQ는 닷넷 프레임 3.5 이상부터 가능하다. 예) using System.Linq; namespace ConsoleApp1{ class Program { static void Main(string[] args) { int[] nums = { 1,5,76,7,3,345,76,76,467,456,34,23,23,99}; var result = from num in nums where num % 3 == 0 where num % 2 == 0 orderby num select num; foreach (int n in result) Console.WriteLine("결과 값: {0}..
delegate란 쉽게 얘기해서 함수 포인터다. 원하는 함수 타입 앞에 delegate란 키워드를 붙여주며 원하는 함수의 형식으로 선언한다. 예) 한정자 delegate 반환형식 델리게이트 이름( 매개변수 목록); public delegate void myDelegate(int a ); 사용 예) namespace ConsoleApp1 { public delegate void myDelegate( int a); ----------- 1 class Program { public void printNum(int a) { Console.WriteLine("{0}",a); } static void Main(string[] args) { Program p1 = new Program(); myDelegate del..
c#에서는 정수식에서 오버 플로가 일어나는지를 명시적으로 검사하는 문장 checked와 오버플로룰 의도적으로 검사하지 않으려는 unckecked문이 존재한다. checked문 내에 있는 정수식에서 오버플로가 발생하면, OverflowException 예외가 발생한다. 선언 구조 checked{//오버플로가 발생하는지 확인하는 문장} unchecked{//오버플로를 의도적으로 검사하지 않으려는 문장.}
참조형 같은 경우, 참조할 객체가 없을 때 null로 설정된다. C#에서는 값형에서도 값이 없음을 나타내기 위한 널이 가능한 형(nullable type)이 가능한데 값형 자료형 다음에 ? 기로를 붙여서 정의한다. 예) int? num;double? num2 = 20.0;
is 연산자 객체가 해당 형식에 해당하는지를 검사하여 그 결과를 bool값으로 반환한다. 사용 예) object obj;bool result = obj is int; result값은 True를 출력한다. as 연산자 연산자와 주어진 값을 지정한 타입으로 변환한다. 형 변환 실패 시 객체 참조를 null을 던진다. 사용 예) int b = 0;int a = b as int ; 결과는 a는 0의 값을 취한다.
데이터의 표현(데이터의 저장)을 담당하는 것이 자료구조다. 넓은 의미에서 int형 변수도 구조체의 정의 및 배열도 자료구조에 속함. 선형구조--리스트 비선형구조--트리 -스택 -그래프 -큐 파일구조--순차파일 단순구조--정수 -색인파일 -실수 -직접파일 -문자 -문자열 파일도 데이터를 저장하는 도구이기 때문에 파일의 구조도 자료구조에 포함이 된다. 선형구조는 데이터를 선의 형태로 나란히 혹은 일렬로 저장하는 방식이며, 비선형 자료구조는 데이터를 나란히 저장하지 않는 구조이다. 자료구조가 '데이터의 표현 및 저장방법'을 의미한다면 알고리즘은 표현 및 저장 데이터를 대상으로 하는 '문제의 해결 방법'을 뜻한다. 자료구조가 결정되어야 그에 따른 효율적인 알고리즘을 결정할 수 있기 때문이다. 알고리즘은 자료구조..