C#으로 만든 프로그램은 CLR(Common Language Runtime)위에서 실행됩니다. 자바를 배운사람이라면 간단하게 이해할 수 있다. CLR은 자바의 실행환경인 자바 가상 머신과 비슷한 역할 C#에서 생성한 클래스 파일은 .cs로 생성된다. .cs 파일을 컴파일하면 .exe나 dll 파일로 변환되고 JIT 컴파일러(CLR안에 존재) 에 의해 NATIVE CODE로 변환해주는 것 이다. CLR은 단순히 C#이나 기타 언어들을 동작시키는 환경 기능 외에도 프로그램의 오류(정확히는 예외)가 발생했을 때, 이를 처리하도록 도와주는 기능, 언어간의 상속 지원, COM과의 상호 운영성 지원, 그리고 자동 메모리 관리 등의 기능을 제공합니다. 이 중에서 자동 메모리 관리는 가비지 컬렉션이라고 하는데 프로그램..
C#에서 yield가 자주 사용되는 곳은 집합적 데이터를 가지고 있는 컬렉션 클래스이며, 일반적으로 컬렉션 클래스는 데이터 요소를 하나 하나 사용하기 위해 흔히 Enumerator(Iterator)를 구현하는 경우가 많습니다 Enumrator를 구현하는 한 방법으로 yield를 사용할 수 있습니다. Enumerator는 데이터 요소를 하나씩 리턴하는 기능을 하는 것으로 C#.net에서는 IEnumerator라는 인터페이스를 구현해야 합니다 인터페이스는 Current(속성), MoveNext() (메서드), Reset() (메서드) 등 3개의 멤버로 이루어져 있는데, Enumerator가 되기 위해서 Current와 MoveNext()를 반드시 구현해야 합니다. public class MyList { pr..
속성 값이 변경되었을때 사용하는 인터페이스 public ~~~~, INotifyPropertyChanged { ㅇㅇㅇㅇ } public event PropertyChangedEventHandler PropertyChanged; public partial class MainWindow : Window, INotifyPropertyChanged { public MainWindow() { InitializeComponent(); this.TimeDisplay = DateTime.Now.ToString(); this.DataContext = this; DispatcherTimer dt = new DispatcherTimer(); dt.Interval = TimeSpan.FromSeconds(1); dt.Tick..
BaGet을 활용하여 Nuget 자체 서버 사용 간단하게 응용할 수 있습니다. BaGet 릴리즈 파일 다운로드 : https://github.com/loic-sharma/BaGet/releases loic-sharma/BaGet A lightweight NuGet and symbol server. Contribute to loic-sharma/BaGet development by creating an account on GitHub. github.com [Local server 사용] 릴리즈 압축 해제한 후 cmd 로 dotnet baget.dll 입력 끝.... 진짜 간단하다 실행만 해주면 자체서버가 열린다 이 내용을 똑같이 응용하여 Azure, AWS에서 사용 가능하다. [Azure app servi..
https://regex101.com/ 다음과 같은 소스를 웹페이지에서 쉽게 확인할 수 있다. CREATE TABLE [dbo].[Sample] ( [Column_bool] BIT NULL, [Column_byte] TINYINT NULL, [Column_char] CHAR NULL, [Column_decimal] MONEY NULL, [Column_double] FLOAT NULL, [Column_float] REAL NULL, [Column_int] INT NULL, [Column_long] BIGINT NULL, [Column_short] SMALLINT NULL, [Column_string] NVARCHAR(50) NULL, [Column_DateTime] DATETIME2 NULL, [Colum..
먼저 실행한 프로그램 종료 후, 새로운 프로그램 시작라즈비안에서 확인함 private static void ReadWriteFile() { //메모장 있을 시 프로세스ID 읽어옴 if (File.Exists(Application.StartupPath + @"/ProcessId.txt")) { string text = File.ReadAllText(Application.StartupPath + @"/ProcessId.txt"); killps(text); Process currentProcess = Process.GetCurrentProcess(); string pid = currentProcess.Id.ToString(); Console.WriteLine(pid); string[] lines = { pid..
private static void killps(string processName) { Process[] process = Process.GetProcessesByName(processName); Process currentProcess = Process.GetCurrentProcess(); foreach (Process p in process) { if (p.Id != currentProcess.Id) p.Kill(); } }
- Total
- Today
- Yesterday