프로그래밍 언어
C# 날짜 관련 함수(DateTime)
시간을 표현하는 방법 DateTime now; // 날짜 변수 now선언 now = DateTime.Now; // 현재시간 Console.WriteLine(now); // 현재시간 Console.WriteLine(now.Year); // 현재 년도를 보여줌 Console.WriteLine(now.Month); // 현재 월을 보여줌 Console.WriteLine(now.Day); // 현재 일을 보여줌 Console.WriteLine(now.DayOfWeek); // 현재 몇 주인지 보여줌 Console.WriteLine(now.DayOfYear); // 1년중 몇일째인지 보여줌 Console.WriteLine(now.TimeOfDay); // 금일 자정부터 몇시간 보여줌 Console.WriteLin..
C# DateTime & TimeSpan
DateTime 날짜와 시간을 나타내기 위해 사용한다. DateTime dt = new DateTime(2016, 08, 24); 기본 생성은 년, 월, 일을 사용해서 초기화 하는 것이다. DateTime dt = new DateTime(2016, 08, 24, 23, 30, 12); Console.WriteLine(dt.ToString()); 시, 분, 초 까지 줘서 초기화 할 수 도 있다. info["date"] = DateTime.Now; 현재 시간은 DateTime.Now 프로퍼티를 사용해서 얻을 수 있다. Console.WriteLine(default(DateTime)); 기본 값은 default(DateTime)으로 얻을 수 있으며, 0001-01-01 00:00:00 이다. DateTime ..
C# 각 타입별로 접근제한자 (Access Modifiers)
이중이 아닌것들 | Default | Permitted declared accessibilities ------------------------------------------------------------------ namespace | public | none (always implicitly public) enum | public | public, internal interface | internal | public, internal class | internal | public, internal struct | internal | public, internal delegate | internal | public, internal 이중인것들 | Default | Permitted declared ..
C# 문자열 배열을 int 배열로 변환
1. Array.ConvertAll() 메서드를 사용 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Linq; namespace Array_of_String_to_integer { class Program { static void Main(string[] args) { //method 1 using Array.ConvertAll string[] temp_str = new string[] { "1000", "2000", "3000" }; int[] temp_int = Array.ConvertAll(temp_str, s => ..
C# Equals, ==, ReferenceEquals 비교
1-1) 같음 연산자 '==' 연산자 왼쪽 오른쪽에 오는 것들이 같은지를 판단하는 연산자다 값 타입의 경우 좌 우의 값이 같으면 True, 다르면 False 를 반환한다. 참조 타입은 좌 우 객체가 같은지를 비교한다. (객체 내부의 값이 같은지 비교 한다는 뜻, 참조(주소)는 상관없음) 1-2) Equals 도 똑같이 == 과 동일한 역할 public virtual bool Equals(object? obj) public virtual bool Equals(object? objA, object? objB) Equals 메서드는 기본적으로 객체가 같은지를 비교한다. 기본적으로는 == 과 동일한 작동한다. 값 타입은 값이 같은지 비교를 하고 참조 타입은 객체가 같은지를 비교한다. (객체 내부의 값이 같은지 ..
C# 복사본 만들기
일반적으로 원본 개체에 영향을 주지 않고 복사본을 수정하거나 이동하기 위해 수행된다. 1. Object.MemberwiseClone() 방법 그만큼 Object.MemberwiseClone() 메서드를 사용하여 현재 개체의 얕은 복사본을 만들 수 있다. 참조 딥 카피를 구현하려면 MemberwiseClone() 방법. using System; public class X { public string str; public object Clone() { return this.MemberwiseClone(); } } public class Example { public static void Main() { X obj = new X(); obj.str = "Hello!"; X copy = (X) obj.Clone..
C# 문자열 자르기(Split), 추출(Substring)
Split 메서드 문자열을 특정 문자 또는 문자열을 기준으로 분리한다. 분리된 문자열은 배열로 반환되며, 전화번호에서 '-'를 기준으로 문자열을 분리하거나 이메일에서 '@'를 기준으로 문자열을 분리하는 경우 사용할 수 있다. string phoneNumber = "010-1234-5678"; string[] phoneNumberSplit = phoneNumber.Split("-"); foreach(string splitNumber in phoneNumberSplit) { Console.WriteLine(splitNumber); } "-"을 기준으로 문자열을 분리하였으며, 분리된 문자열은 배열로 반환한다. 즉, 배열 phoneNumberSplit에는 [ "010", "1234", "5678" ]이 할당된다..
C# 문자열 공백 기준으로 분할
String.Split() 방법. 구분 기호를 지정하지 않으면 공백 문자로 문자열을 분할한다. using System; public class Example { public static void Main() { String s = "Split by\twhitespace"; string[] tokens = s.Split(); Console.WriteLine(String.Join(", ", tokens)); // 공백으로 분할 } } 여러 공간을 처리하려면 다음을 사용할 수 있다. String.Split(char[]) method 과부하 StringSplitOptions.RemoveEmptyEntries 아래 그림과 같이 옵션을 선택. using System; public class Example { pub..
C# _ Discard (변수 무시)
필요한 이유 별도의 변수를 선언 할 필요가 없다. 또한 discards를 사용하면 메모리 할당을 줄일 수 있다. 코드의 의도를 투명하게 만들고 가독성과 유지 관리성을 향상시키는데 도움된다. 예제 코드 switch를 사용한 패턴 매칭 class Program { static void ProvideString(string statement) => Console.WriteLine(statement switch { "x" => "hello, x world", null => "hello, null world", _ => "hello, world" }); static void Main(string[] args) { ProvideString("x"); ProvideString(null); ProvideString("..
C# 오버플로우(Overflow), 언더플로우(Underflow)
오버플로우 변수는 데이터를 담는 그릇과 같다. 그릇에 용량을 넘어사는 양의 물을 담으면 넘치는 것처럼, 변수에도 데이터 형식의 크기를 넘어서는 값을 담으면 넘쳐 흐른다. 이런 현상을 "오버플로우(Overflow)"라고 한다. using System; namespace FlowExam { class FlowExample { static int Main(string[] args) { byte variable = byte.MaxValue; Console.WriteLine($"{variable}"); // 오버플로우 발생 variable++; Console.WriteLine($"{variable}"); return 0; } } } /* 결과 255 0 */ byte의 최대값은 255이다. 255는 이진수로 변환..