본문 바로가기

반응형

전체 글

(186)
BadImageFormatException 오류 프로젝트 속성 - 빌드 - 플랫폼 의 버전과 상단 메뉴 - 빌드 - 구성 관리자 - 플랫폼 버전을 통일시켜주면 해결 된다!.! [출처] https://bigenergy.tistory.com/673 https://yujuwon.tistory.com/entry/BadImageFormatException-%EB%B0%9C%EC%83%9D
Form 창 화면 가운데로 띄우기 1. Form을 불러올 때 CenterToScreen() 메소드를 호출한다. public Form() { InitializeComponent(); this.CenterToScreen(); } 2. Form의 StartPosition 속성을 CenterScreen으로 지정한다. form.StartPosition = FormStartPosition.CenterScreen; [출처] http://son10001.blogspot.com/2015/03/c-winform.html
대소문자를 구별하지 않고 문자열 비교하는 방법 1. ToLower() 또는 ToUpper() 메소드 사용하기 if (str1.ToLower() == str2.ToLower()) { } 2. String클래스에서 제공하는 Compare 메소드 사용하기 - 위 메소드보다 성능면에서 우수하다. - 세번째 파라미터를 true 갑으로 지정하면 대소문자 구별없이 문자열을 비교한다. if (string.Compare(str1, str2, true) == 0) { } [출처] https://blog.naver.com/PostView.nhn?isHttpsRedirect=true&blogId=gboarder&logNo=90020289950
@ 심벌 사용법 @ 심벌을 문자열 앞에 사용하면, 해당 문자열 안의 Escape 문자를 무시하고 문자 그대로 인식하도록 한다. string filename = "C:\\Temp\\1.txt"; // @심벌을 사용하여 보다 자연스럽게 패스 지정 string filename = @"C:\Temp\1.txt"; [출처] http://www.csharpstudy.com/Tip/Tip-at-symbol.aspx
불변성과 가변성(공변성, 반공변성) 불변성(Invariance) - X -> Y가 가능하더라도 C는 C로만 사용할 수 있다. 기본적으로 제네릭은 불변이다. 동일 타입만 사용. 상/하위 타입으로 레퍼런스 변환 불가. interface IFoo IFoo a = new Foo(); 가변성(Variance) -특정 타입의 객체를 다른 타입의 객체로 변환할 수 있는 성격을 말한다. 공변성(Covariance) - 출력/리턴 타입에 T 사용 - Dog보다 상위타입에 assign 가능 - X -> Y가 가능할 때, C가 C -> C로 가능하다. interface IFoo IFoo a= new Foo(); 반공변성(Contravariance) - 입력/메서드 파라미터에 T 사용 - Animal보다 하위타입에 assign 가능 - X -> Y가 가능할 때..
Call By Reference(값에 의한 전달) - ref, out 값에 의한 전달 - 값 복사란 두 개의 메모리가 존재하고 한쪽의 메모리에 들어있는 값을 다른 쪽의 메모리로 그 값만큼 복사하는 행위이다. ref에 의한 참조 - 참조형 매개변수는 메모리의 위치에 대한 참조이다. 함수를 호출하면 참조형 매개변수는 함수가 호출될 때 넘겨지는 변수의 메모리 주소에 대한 참조값을 가지게 된다. - 참조로 값을 넘길 때 주의할 사항은 참조할 대상은 반드시 초기화되어야 한다는 것이다. 초기화 되지 않은 변수를 넘겨줄 때 컴파일 에러가 발생한다. - C의 포인터와 유사하게 메모리 내에 저장되어 있는 값을 가르킨다. 하지만 포인터라고 할 수는 없는 것이, 'unsafe'라는 포인터를 사용하기 위한 키워드가 따로 존재하기 때문이다. 단순히 참조를 하기 위한 키워드로 사료된다. out에 ..
Invoke와 BeginInvoke의 차이점 Invoke와 BeginInvoke의 목적 - UI 컨트롤박스를 생성하게 되면 내부 스레드가 자동으로 생성되는데 별도의 스레드를 생성하여 해당 컨트롤 박스에 접근하려 하면 서로 다른 스레드가 하나의 컨트롤 박스 객체에 접근을 하게 되는데, 이 때 교착상태(크로스 스레드, Cross Thread)가 발생하여 Invoke 또는 BeginInvoke를 사용하여 해당 크로스 스레드 문제를 방지하는데 목적이 있다. - C# Form 프로그래밍에서는 Main Thread(UI Thread)와 Other Thread(Work Thread)로 분리되어 작업이 된다. Other Thread에서 Main Thread의 UI 작업을 하려고 하면 불가능하다. 왜냐하면 컨트롤을 생성한 Main Thread에서만 접근이 가능해서..
Action/Func/Predicate Action 리턴 값이 없는 함수에 사용되는 Delegate 0개부터 16개의 파라미터까지 받아 들일 수 있다. Func Action Delegate와 비슷한데, Func는 반드시 리턴 타입이 ~ Generic 폼 내에, 즉 템플린 파라미터 안에 ~ 존재해야 한다. Action과 같이 16개까지 입력파라미터를 받아 들일 수 있다. Predicate 리턴값이 반드시 bool이어야 한다. 입력 파라미터는 1개이다. 이 특수한 delegate는 .Net의 Array나 List 클래스의 메서드들에서 자주 사용된다. [출처] http://www.csharpstudy.com/Tip/Tip-Func.aspx

반응형