본문 바로가기

C#

(39)
C# 경로에 파일이 있는지 확인(File.Exists) 경로에 파일이 있는지 확인 if (File.Exists("C:/Test/config.txt")) { // 파일이 존재할 때의 처리 } else { // 파일이 없을 때의 처리 } if (File.Exists("C:\\Test\\config.txt")) { // 파일이 존재할 때의 처리 } else { // 파일이 없을 때의 처리 }
C# 소수점 두 자리 또는 세 자리 표시(ToString) 소수점 두 자리 표시 'ToString' 메서드 사용 F2(영어F, 숫자2) 입력 소수점 이하 두 자리로 반올림 입력: 1234567.1234 결과: 1234567.12 double number = 1234567.1234; string formattedNumber = number.ToString("F2"); 소수점 세 자리 표시 'ToString' 메서드 사용 F3(영어F, 숫자3) 입력 소수점 이하 세 자리로 반올림 입력: 1234567.1234 결과: 1234567.123 double number = 1234567.1234; string formattedNumber = number.ToString("F3"); 숫자 천 단위마다 콤마 + 소수점 두 자리 표시 'ToString' 메서드 사용 N2(영어N..
C# 숫자 3자리마다 콤마 표시(ToString) 숫자 3자리마다 콤마 표시 'ToString' 메서드 사용 N0(영어N, 숫자0) 입력 입력: 1234567 결과: 1,234,567 int number = 1234567; string formattedNumber = number.ToString("N0"); 숫자 3자리마다 콤마 + 소수점 두 자리 표시 'ToString' 메서드 사용 N2(영어N, 숫자2) 입력 소수점 이하 두 자리로 반올림 입력: 1234567.12567 결과: 1,234,567.13 double number = 1234567.12567; string formattedNumber = number.ToString("N2");
C# Windows Forms(윈폼) 애플리케이션에서 콘솔 창을 함께 사용(AllocConsole) using System; using System.Runtime.InteropServices; using System.Windows.Forms; namespace WindowsFormsAppWithConsole { static class Program { [DllImport("kernel32.dll", SetLastError = true)] [return: MarshalAs(UnmanagedType.Bool)] static extern bool AllocConsole(); [STAThread] static void Main() { AllocConsole(); // 콘솔 창 할당 ... } } }
C# 스레드(Thread) 프로세스: 현재 실행중인 프로그램 스레드 운영체제가 프로세스 시간을 할당하는 기본 단위 순차적이지 않고, 여러 기능을 동시 다발적으로 실행할 때 사용 하나의 스레드를 한 명의 작업자로 비유함 여러 스레드에서 동시에 같은 데이터에 접근할 때 lock 키워드를 사용하여 크래시 문제 해결(스레드 동기화) public class ThreadTest { public void Run() { Console.WriteLine($"메인 Thread 시작, ThreadId: {Thread.CurrentThread.ManagedThreadId}"); System.Diagnostics.Stopwatch s = new System.Diagnostics.Stopwatch(); s.Start(); // ThreadRun 메서드 호..
C# 제네릭 클래스 형식 매개변수 제약조건 where 키워드를 사용하여 T가 구조체인지 클래스인지를 결정할 수 있음 T에 값 형식만 받을 수 있도록 제약조건을 사용 public class TTestA where T : struct { } TTestA a1 = new TTestA(); // 가능 TTestA a2 = new TTestA(); // 컴파일 에러 T에 참조 형식만 받을 수 있도록 제약조건을 사용 public class TTestB where T : class { } // 참조 형식만 TTestB b1 = new TTestB(); // 컴파일 에러 TTestB b2 = new TTestB(); // 가능 매개변수가 없는 생성자만 생성할 수 있도록 제약조건을 사용 public class TTestC where T : new() { } //..
C# 이터레이터(IEnumerable 인터페이스와 yield 키워드) foreach 문 사용할 수 있음 IEnumerable와 yield 키워드를 사용하면 foreach 문을 인스턴스.메서드로 호출 IEnumerator와 yield 키워드를 사용하면 foreach 문을 인스턴스로 호출 클래스에서 GetEnumerator 메서드로 구현해야함(메서드 이름 같아야함) class yieldTest { public IEnumerable Test01() { yield return 10; yield return 20; yield return 30; } public IEnumerator GetEnumerator() { for (int i = 1; i
C# 익명 형식(Anonymous type) 클래스를 선언하지 않은 인스턴스 클래스를 선언하지 않고 인스턴스 만들기 데이터 형식 var 키워드를 사용 var user = new { Id = 1, Nickname = "유저", attack = 100 }; Console.WriteLine($"{user.Id}, {user.Nickname}, {user.attack}");

반응형