목록IT/c# (15)
미처 완성되지 못한 알고리즘
Func =>앞에 오는 건 무조건 리턴값이고 그 뒤로는 매개변수 값이다. Action =>Action은 리턴값이 없는 델리게이트 선언이다.
string[] str = new string[100]; str.Where((s) => { if (s.Equals("1")) return true; return false; }).ToArray(); 다음처럼 이름이 없는 함수를 넘기는 것이 가능하다.
public class Student { public int m_num { get; set; } public string m_name { get; set; } } public class StudentList { public List m_list = new List(); Ascending m_sortAscending = new Ascending(); Descending m_sortDescending = new Descending(); public int count { get { return m_list.Count; } } public void Add(Student friend) { m_list.Add(friend); } public void Clear() { m_list.Clear(); } public v..
interface CarControl { void Gear(int i); void Off(); } interface AudioControl { void Volume(int i); void Off(); } public class Car : CarControl, AudioControl { public void Gear(int i ) { Console.WriteLine("현재 기어는 {0}입니다.", i); } public void Volume(int i) { Console.WriteLine("현재 볼륨은 {0}입니다.", i); } void CarControl.Off() { Console.WriteLine("자동차 시동을 껐습니다."); } void AudioControl.Off() { Console.Wri..
자식 클래스를 new 키워드로 인스턴스화 할 때 부모의 디폴트 생성자가 먼저 호출되고 나서 자식 클래스의 생성자가 호출된다.
public event EventHandler Event;
c#에서 반환형이 object형식은 C언어에서 void*와 비슷하므로 반드시 캐스팅을 해준다. 예) int[] orgArr = new int[] {10, 20, 30, 40}; int[] copyArr = (int[])orgArr.Clone();
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); ------------------..