8월, 2019의 게시물 표시

[C#] 프로젝트구성, 라이브러리(DLL) 추가, 응용프로그램구성파일(app.config)

이미지
[C#] 프로젝트구성, 라이브러리(DLL) 추가, 응용프로그램구성파일(app.config) 프로젝트(project)는 비주얼 스튜디오의 소스코드 관리를 위해 도입된 개념 한 프로젝트는 여러개의 소스코드로 이루어지고 해당 프로젝트를 빌드하면 EXE / DLL 파일이 만들어진다. 프로젝트를 생성하면 프로젝트파일(csproj) 이 만들어진다. [ConsoleApp 프로젝트] - ConsoleApp.csproj 파일 솔루션(Solution) : 프로젝트보다 큰 단위  오피스(솔루션) - 워드(프로젝트), 엑셀(프로젝트), 파워포인트(프로젝트), 아웃룩(프로젝트) 라이브러리 : 재사용가능한 단위 저장될때는 확장자로 DLL 이 붙는다. Console, WriteLine 의 Console타입은 mscorlib.dll 파일에 포함된것. 닷넷 프레임워크 설치시 일부라이브러리( BCL, FCL )가 설치된다. csc.exe 파일위치 : C:\Windows\Microsoft.NET\Framework64\v4.0.30319 (필요시 환경변수 path에 추가) csc /target:library LogWriter.cs #LogWriter.dll 파일로 컴파일된다. csc Program.cs /r:LogWriter.dll #Program.exe 가 만들어지고 실행시 꼭 LogWriter.dll 파일이 필요하다. 비쥬얼스튜디오 에서는 참조 - 참조추가 - 찾아보기 - 만든 dll 파일 추가 로 사용한다. 응용프로그램 구성파일( app.config ) 솔루션탐색기 - 추가 - 새항목 - 응용프로그램구성파일 <configuration> <startup> <supportedruntime sku=".NETFramework,Version=v4.6.1" version="v4.0"> #닷넷 버전(해당프레임워크 버전이...

[C#] 예약어(checked , unchecked), params

[C#] 예약어(checked , unchecked), params - checked : 오버플로, 언더플로가 자동으로 되는 것을 방지하고 오류를 출력 - unchecked : 오버플로, 언더플로가 일어나도 오류를 출력하지 않는다. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp__Checked { class Program { static void Main(string[] args) { short c1 = 32767; c1++; Console.WriteLine(c1); // 출력결과 -32768 : 오버플로 int n1 = 32768; c1 = (short)n1; Console.WriteLine(c1); // 출력결과 -32768 : 오버플로 short c2 = -32768; c2--; Console.WriteLine(c2); //출력결과 32767 : 언더플로 short c = 32767; int n = 32768; //오버플로, 언더플로가 자동으로 되는 것을 방지하고 오류를 출력 checked checked { c++; } } } } using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.T...

[C#] 전처리기 지시문

이미지
[C#] 전처리기 지시문 하나의 소스코드파일로 여러가지 상황을 만족하는 프로그램을 만들때 사용. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp_Processor { class Program { static void Main(string[] args) { String txt = Console.ReadLine(); //엔터가 눌릴때까지 키보드입력을 받는 역할 if( string.IsNullOrEmpty(txt) == false) // null이거나 empty 인경우 true 를 반환한다. { Console.WriteLine("사용자입력" + txt); } #if OUTPUT_LOG else { Console.WriteLine("입력되지않음"); } #endif } } } 전처리기 지시문 : 소스코드를 나누어 컴파일할때 중복 소스를 방지하고자 사용 #if 상수(전처리상수) / #endif 를 사용 [OUTPUT_LOG가 정의되지 않은 컴파일] csc program.cs [OUTPUT_LOG가 정의된 컴파일] csc /define:OUTPUT_LOG program.cs 비쥬얼스투디오에서는 솔루션탐색기 - 프로젝트항목 선택 - 속성-빌드-조건부컴파일기호에 OUTPUT_LOG를 입력 #define __X86__ #undef OUTPUT_LOG using System; using System.Collections.Gen...