c# 12

C# int to bool 변환하는 방법

C#에서 int형을 bool형으로 변환하는 방법에 대해 알아보자. Convert 정적 클래스의 ToBoolean 정적메서드를 통해 변환할 수 있다. static void Main(string[] args) { int i = 0; Console.WriteLine(Convert.ToBoolean(i)); // False i = 1; Console.WriteLine(Convert.ToBoolean(i)); // True } 0은 False, 나머지 값은 True를 반환한다. int to bool 외에도 float, double, char, byte, long 등 다양한 자료형에 대해서도 오버로딩되어 있다.

C#/개발 2024.04.23

C# SQLite 외래키 제약 조건 활성화 방법

C#에서 SQLite를 사용하던 중 외래키를 사용하게 되었다. 참조무결성 제약인 ON DELETE CASCADE, ON UPDATE CASCADE를 적용하기 위해서는 외래키 제약 조건을 활성화해야 한다. SQLite 버전 3.6.19부터 외래키 제약 조건의 기본 설정은 OFF 되어 있다. C#에서 SQLite 외래키 제약 조건 활성화 방법에 대해 알아보자. class Program { private const string _connInfo = @"Data Source=TestDB.db"; public static void ExecuteNonQuery(string query) { using (SQLiteConnection conn = new SQLiteConnection(_connInfo)) { try {..

DB/SQLite 2024.04.01

C# 경로가 디렉토리인지 파일인지 구분하는 방법

C#에서 입력받은 경로가 디렉토리인지 파일인지 구분하는 방법을 알아보자. // 경로 string path = @"D:\Test.txt"; // 경로에 해당하는 FileAttributes 가져오기 FileAttributes fileAttributes = File.GetAttributes(path); // 디렉토리인 경우 if((fileAttributes & FileAttributes.Directory) == FileAttributes.Directory) { Console.WriteLine("디렉토리"); } // 파일인 경우 else { Console.WriteLine("파일"); }

C#/개발 2024.02.02

C# 날짜 일수 차이 계산

C#에서 두 날짜의 일수 차이 계산하는 방법을 알아보자. // 일반적인 두 날짜 차이 계산 DateTime date1 = new DateTime(2024, 1, 5, 3, 21, 30); DateTime date2 = new DateTime(2024, 1, 1, 13, 5, 11); Console.WriteLine($"date1 : {date1}"); Console.WriteLine($"date2 : {date2}"); Console.WriteLine($"두 날짜 차이 : {date1 - date2}"); // 원하는 두 날짜 일수 차이가 아님 Console.WriteLine($"두 날짜 일수 차이 : {(date1 - date2).Days}"); // ToShortDateString 메서드를 이용한 두..

C#/개발 2024.01.18

C# 파일 이름 변경

C# 파일 이름 변경 C#에서 파일 이름을 변경할 때 File 클래스의 Move 메서드를 사용하면 된다. // Move 메서드 함수원형 public static void Move(string sourceFileName, string destFileName); sourceFileName : 이동할 파일의 이름으로 상대 또는 절대 경로가 포함될 수 있다. destFileName : 파일에 대한 새 경로 및 이름으로 상대 또는 절대 경로가 포함될 수 있다. 예외 원인 System.IO.IOException sourceFileName을 찾을 수 없거나 destFileName이 이미 존재하는 경우 System.IO.PathTooLongException 경로 및 파일이름이 시스템에서 정의한 최대 길이를 초과한 경우..

C#/개발 2024.01.13

C# enum 순회

C# enum 순회 방법 가끔 개발을 하다 보면 enum을 순회해야 하는 경우가 있다. 상수 값 또는 이름으로 순회하는 방법을 알아보자. 상수 값 순회하기 using System; namespace CSStudy { class Program { enum DayOfWeek { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday } static void Main(string[] args) { // var의 경우 object가 됨. // var 대신 int, enum 자료형(DayOfWeek)로 변경 가능 foreach (var value in Enum.GetValues(typeof(DayOfWeek))) { Console.WriteLine($"{(..

C#/개발 2024.01.08

C# Nullable 값 형식이란?

Nullable 값 형식이란? C#에서 int, float와 같이 값 형식은 null을 가질 수 없다. int? num = null; 하지만 Nullable을 사용하면 값 형식에도 null을 가질 수 있다. 자료형 뒤에 ?를 붙여주면 컴파일 시 Nullable 구조체로 변환된다. 즉, int?는 Nullable와 동일하다는 뜻이다. Nullable 값 형식은 주로 DB에서 값을 읽어와 저장하는 데이터 구조에 자주 사용한다. DB에는 null을 허용하는 bool, 날짜 등이 있으므로 C#에서 Nullable 값 형식으로 대체가능하다. Nullable 사용방법 Nullable 구조체는 2개의 속성을 가지고 있다. HasValue : 값을 가지고 있는지 체크하는 속성 Value : 실제 값을 나타내는 속성 s..

C#/개념공부 2024.01.07

C# var 키워드란?

var 키워드란? C#에서 변수를 선언할 때 int, float, string과 같이 자료형을 명시적으로 나타내고 제한된 값을 가지게 된다. 암시적 형식인 var 키워드를 사용하게 되면 초기화문의 식을 보고 변수의 형식을 컴파일러가 유추하게 된다. var 변수에 10으로 초기화 시 컴파일러는 int형으로 컴파일하게 된다. C# var 사용방법 static void Main(string[] args) { var num = 10; Console.WriteLine($"Type : {num.GetType()}, Data : {num}"); string str = "var키워드"; Console.WriteLine($"Type : {str.GetType()}, Data : {str}"); } C# var 키워드는 ..

C#/개념공부 2024.01.06

C# enum 열거형

enum 열거형이란? C#에서 제공하는 enum은 열거형 상수(constant)를 표현할 때 사용한다. 상수 숫자를 의미 있는 단어로 표현할 수 있어 가독성이 좋아진다. 예를 들어 계절의 경우 봄, 여름, 가을, 겨울 4가지로 고정된다. enum으로 표현하면 다음과 같다. class Program { public enum Season { Spring, Summer, Fall, Winter } static void Main(string[] args) { Season season = Season.Spring; Console.WriteLine(season);// "Spring" 출력(내부적으로 season.ToString() 호출) Console.WriteLine((int)season);// 0 출력 } } ..

C#/개념공부 2024.01.03

C# 상수(const)

상수란? 이전 포스팅에서 배운 변수는 런타임 시간에 값을 변경할 수 있었다. 상수는 해당 값이 컴파일 시간에 설정되어 런타임 시간에 값을 변경할 수 없다. C#에서는 메서드, 속성, 이벤트에는 상수(const)를 지원하지 않는다. PI와 같이 이미 정의된 값이 절대로 변하지 않는 경우에 사용하면 좋다. 상수 정의 방법 const double PI = 3.14159; C#에서 상수를 정의하는 방법은 const 키워드를 변수 선언에 접두어로 붙이면 된다. 상수는 선언과 동시에 초기화를 해야 한다. 선언과 동시에 초기화를 하지 않으면 CS0145 에러가 발생한다. 상수는 값을 변경할 수 없기 때문에 변경 시 CS0131 에러가 발생한다. 상수 사용 방법 로컬 상수 static void Main(string[]..

C#/개념공부 2024.01.02