본문 바로가기

분류 전체보기

(34)
[C#]7.0이전의 Tuple => Tuple클래스 Tuple클래스 튜플은 값의 특정 개수와 시퀀스를 포함하는 데이터 구조 입니다. Tuple까지 최대 8개의 구성요소를 가질수 있습니다. Tuple 결과값은 순서대로 Item1, Item2.. 순서로 표현 됩니다. Tuple 클래스 사용법` public void Run() { var pInfo = PersonalInfor("Yangbeng", 33); Console.WriteLine($"{pInfo.Item1} : {pInfo.Item2}"); } private Tuple PersonalInfor(string name, int age) { Tuple personalInformation = new Tuple(name, age); return personalInformation; } 결과 Yangbeng : 33
MarkDown(마크다운) 용어정리 1. 마트다운이란? MarkDown : 마크다운이란 글을 쓰는 모든사람들을 위한 글쓰기 도구(서식, 포맷, 양식)입니다. 2. 마크다운의 태그 종류 제목 : # 인용 : > 강조 : * 링크 : [텍스트](주소) 이미지 : ![텍스트](이미지 주소) 리스트 : 1, *, -, + 코드표시 : ```코드``` 줄바꿈 : 엔터 2번, , 강제 줄바꿈은 문장 끝에 스페이스바 2번 가로선 : ----, *****, +++++3. 제목(타이틀) 제목은 크게 1단계에서 6단계까지 표시 할 수 있습니다. # 제목1 ## 제목2 ### 제목3 #### 제목4 ##### 제목5 ###### 제목6제목1 제목2 제목3 제목4 제목5 제목 6 4. 인용구문 > 인용문구 >> 인용문구 안에 인용문구인용문구 인용문구 안에 인용..
[C#] 7.0 Out 매개 변수 Out 매개 변수 out 키워드를 사용하면 참조를 통해 인수를 전달할 수 있습니다. C# 6.0 이전버전에는 out Parameter에 관한 별도 변수 선언을 해야 했지만 c# 7.0 부터는 out Parameter값이 암시적 형식 지역변수로 선언할 수 있습니다. 6.0 이전 사용 방법 public void Run() { int ret = 0; Sum(out ret, 3, 4); Console.WriteLine($" 3 + 4 = {ret}"); } private void Sum(out int result, int val1, int val2) { result = val1 + val2; } 7.0 이후 사용 방법 public void Run() { //out 에 해당하는 매개 변수 값을 지역변수로 선언 S..
[C#] 7.0 로컬 함수 로컬 함수 로컬 함수는 메서드 안에 그 메서드에서만 사용하는 로컬 함수를 작성할 수 있다. 로컬함수는 자신의 메서드 이외에서 호출할 수 없으며, 하나의 메서드 안에는 여러개의 로컬 함수들을 만들 수 있습니다. 사용 방법 private void Run() { var cal = Cal_Average(new int[] { 1, 2, 3, 4 }); Console.WriteLine($"Value : 1 ~ 4 Avg : {cal}"); } private double Cal_Average(int[] val) { int cnt = val.Length; double avg = GetAvg(val); return avg; // 아래와 같이 함수 안에 함수를 선언! double GetAvg(int[] values) { ..
[C#] 7.0 튜플(Tuple) 튜플(Tuple) 튜플은 데이터 멤버를 나타내는 여러 필드가 포함된 간단한 데이터 구조 입니다. C# 튜플 형식은 == 및 !=을 지원 합니다. 사용 방법 (int sum, int sub, int avg) Calculate(int val1, int val2) { int summary = val1 + val2; int subtract = val1 - val2; int average = summary / 2; return (summary, subtract, average); } private void Run() { var cal = Calculate(1 ,3); Console.WriteLine($"Value : 1, 3 \nSum : {cal.sum}, Sub : {cal.sub}, Avg : {cal.av..
[C#] 7.0 패턴 일치 패턴 일치 패턴 일치는 is 식과 switch 식을 지원합니다. 각 식을 통해 개체 및 관련 속성을 검사하여 해당 개체가 검색된 패턴을 충족하는지 확인 할 수 있습니다. is 패턴 object[] obj = { (int)33, null, "Yangbeng" }; foreach(var singleObj in obj) { // obj is int cnt => obj가 int 형식이 맞다면 cnt 라는 int 변수를 생성해서 그곳에 값을 넣는다. if (singleObj is int cnt) Console.Write(cnt); } 결과 33switch 패턴 변수형 타입에 따라 입력된 값을 분류할 수 있습니다. object[] obj = { (int)33, null, "Yangbeng" }; foreach(va..
[C#] 명명된 매개변수, 선택적 매개변수 명명된 매개변수, 선택적 매개변수 C# 4.0에 추가된 명명된 매개변수, 선택적 매개변수 4.0 이전에는 매개변수 따라 결과를 다르게 하려면 아래와 같이 함수 오버로딩을 해야 했습니다. 4.0 이전 void ShowMessage(string name); void ShowMessage(string name, int age); void ShowMessage(string name, int age, string country); 명명된 / 선택적 매개 변수 활용 void ShowMessage(string name, int? age = null, string country= null) { Console.WriteLine($"{name} {age} {country}"); } ShowMessage("Yangbeng"..
[C#] DataTable 중복 데이터 제거 경험 DataTable의 데이터를 DB에 넣거나, 혹은 DataTable의 값을 가지고 다양하게 변형을 시키는 경우가 있습니다. 이때 중복된 데이터가 있다면 오류를 발생하기 쉽습니다. 이때, 아주 간단한 방법으로 중복된 데이터를 제거 할 수 있습니다. 중복된 데이터 생성 class Program { static void Main(string[] args) { CreateDataTable cDt = new CreateDataTable(); DataTable dt = cDt.GetDataTable; foreach (DataRow dRow in dt.Rows) Console.WriteLine($"{dRow[0]} : {dRow[1]}"); } } public class CreateDataTable { priv..
[WPF - NuGet] log4net (logger) 사용하기 log4net 이란? log4net은 Aparche Software Foundation에서 개발한 .Net에서 사용할 수 있는 Logging Framework입니다. log4net의 특징 로그를 다양한 공간(File, DB, Consol, Email 등)에 만들수 있습니다. 다양한 로그(Info, Debug, Error 등)를 표현 할 수 있습니다. 로그 생성 구조는 변경 하고 싶을 때에는 코드 수정없이 Config 파일만 변경하면 됩니다.log4net의 단점 Config 파일의 명령어에 오타가 있을경우 log4net이 실행되지 않습니다. Config 파일의 오류를 찾기 어렵습니다.log4net의 기능 Logger : 코드상 로그를 출력하는 기능 Appender : Logger안에 Appender를 사용..
[C#] Property를 LINQ방식으로 표현 Property를 LINQ방식으로 표현 경험 클래스에 Property를 선언하고 사용하다 보면 Linq를 자주 사용하게 됩니다. Property를 Linq방식으로 표현하는 다양한 방식을 알아보겠습니다. 1. Class에 Property 선언 방법 1.1 기본 Property 선언 public class Student { private string _name { get; set; } public string Name { get { return _name; } set { _name = value; } } } 1.2 Linq Style 선언 1 public class Student { private string _name { get; set; } public string Name { get => _name; ..