.NET/Common
-
C# .NET 솔루션, 프로젝트 구조.NET/Common 2025. 2. 23. 21:00
이번 포스트에서는 닷넷 프로그래밍을 할 때 솔루션(.sln)과 프로젝트(.csproj)가 무엇인지 설명합니다. 우리가 프로그램을 만들고자 할 때 IDE를 통해서 어떤 프로젝트를 구성할 때, 각 언어나 프레임워크에 따라서생성되는 파일의 구조, 패키지의 구성들이 다르게 생성됩니다. 닷넷으로 프로그램을 만들고자 할때도 닷넷 고유의 프로젝트 구조가 있습니다. Jetbrains Rider를 이용해서 새 솔루션을 선택하면 현재 다음과 같은 화면을 볼 수 있습니다. 솔루션 이름과 프로젝트 이름을 설정하는 부분이 각각 있습니다. 솔루션솔루션은 여러 프로젝트를 포함 할 수 있는 관리 구조 입니다.솔루션 내의 폴더는 운영체제와는 별개의 구조로 각개의 프로젝트의 실제 위치는 os에서 각기 다른 위치하더라도 솔루션탐색기내에..
-
C# 문법 Null Safety.NET/Common 2022. 9. 17. 21:52
C# NULL Safety C# 8.0에서는 다음과 같은 Nullsafety 연산자를 지원한다. NULL 대체할당 var nullstring = null; nullstring ??= "null일경우 대체할 스트링" 이 문법을 사용하면 다음과 같이 Null check하고 할당하는 코드를 단 한줄로 줄일 수 있다. if(nullstring == null) { nullstring = "null일경우 대체할 스트링"; } null safety 연산자를 해석하면 다음과 같다. A??=B ; A(좌측변수)가 널이라면 B(우측변수)를 A에 할당한다 NULL 대체 NULL값이 들어있는 변수를 대체하는 연산자는 ?? 이다. var nullstring = null; Console.WriteLine(nullstring?? ..
-
Regex 정규식 활용 그룹명.NET/Common 2022. 9. 7. 13:11
static void Main(string[] args) { Regex regex = new Regex(@"^(?.+?)_(?.+)\..+$"); var match = regex.Match("TEST_PID12345678.csv"); Dictionary keyValues = new Dictionary(); if(match.Success) { foreach (string groupName in regex.GetGroupNames()) { if (char.IsDigit(groupName.ToCharArray()[0])) continue; //숫자로 그룹명 자동생성 keyValues.Add(groupName, match.Groups[groupName].Value); } Console.WriteLine(keyV..
-
C# RS232 통신.NET/Common 2022. 9. 4. 00:03
설비나 계측기에 대한 데이터값을 받을때 자주 사용합니다. public partial class FormSerialblog : Form { SerialPort Port = new SerialPort(); Queue Datas = new Queue(); public FormSerialblog() { InitializeComponent(); Port.PortName = "COM1"; Port.BaudRate = 9600; Port.DataReceived += Port_DataReceived; Port.Open(); } private void Port_DataReceived(object sender, SerialDataReceivedEventArgs e) { Thread.Sleep(100); var readSt..