분류 전체보기 (35) 썸네일형 리스트형 [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; .. [C#] Predicate<T> 리턴값이 bool인 delegate Predicatedelegate Predicate는 입력값이 1개 이고, 리턴값이 반드시 bool인 delegate 이다. Predicate 는 Func 과 같은 형태 입니다. Predicate 활용법 public void Run() { //기존 메서드 사용 Predicate DetInteger = DetermineInteger; bool result = DetInteger(33); Console.WriteLine($"33 정수 인가? {result}"); //무명메서드 사용 Predicate DetermineInteger2 = delegate (int val) { return val > 0; }; Console.WriteLine($"-1 정수 인가? {DetermineInteger2(-1)}"); //.. [C#] Func<T1, T2..> Delegate 리턴값이 존재하는 메서드 Func Delegate Func Delegate는 Action Delegate는 비슷하지만, 반드시 리턴 값을 가져야 합니다. Func로 파라미터는 필요에 따라 0~16개를 받아들일 수 있고, 1개의 Result 값을 갖는다. Func 로 가장 마지막 제네릭 인자가 Return 값이 된다. Action 활용법 public void Run() { //기존 메서드 사용 Func ShowPerson = ShowPersonInfo; string result = ShowPerson("춘남", "프로그래머"); Console.WriteLine(result); //무명메서드 사용 Func ShowPsersonalInfo = delegate (string str, string job) { return $"{str} .. [C#] Action<T> Delegate 리턴값이 없는 메서드 Action Action Delegate는 리턴 값이 없는 함수에 사용되는 Delegate입니다. Action로 파라미터는 필요에 따라 0~16개를 파미터를 줄 수 있습니다. Action의 사용의 특징은 메서드 내부에 선언하여 메서드 안에서만 사용이 가능하다. Action 활용법 public void Run() { //기존 메서드 사용 Action ShowPerson = ShowPersonInfo; ShowPerson("춘남", 33); //무명메서드 사용 Action ShowPsersonalInfo = delegate (string str, int age) { Console.WriteLine($"{str} : {age}"); }; ShowPsersonalInfo("동복다방", 3); //람다식 사용 A.. [C#] Class에서 인덱서[T] 사용하기 인덱서[T] 인덱서는 클래스나 구조체의 인스턴스를 배열처럼 인덱싱할 수 있습니다. 인덱싱 값은 형식이나 인스턴스 멤버를 명시적으로 지정하지 않고도 설정하거나 검색할 수 있습니다. 인덱서는 해당 접근자가 매개 변수를 사용한다는 점을 제외하면 속성과 유사합니다. 인덱서는 내부 컬렉션 또는 배열을 캡슐화 하는데 주로 사용되는 형식 Public int this[int index] 간단한 예제 public void Run() { StringArray strArr = new StringArray(); strArr[4] = "Yangbeng! Good Boy"; Console.WriteLine(strArr[4]); } public class StringArray { private T[] _arr = new T[10].. [WPF] Canvas 사용법 Canvas Canvas를 이용하면 자식 컨트롤에 특정 좌표를 할당하여 레이아웃을 제어할 수 있습니다. 도형 그릴 때 많이 사용됩니다. 1.Canvas 사용법 Top left Top right Bottom left Bottom right Canvas 속성은 모서리를 기준으로 위치를 지정합니다. 2.Z-Index Canvas 내의 두 컨트롤이 겹치면 마지막으로 정의된 컨트롤이 맨 위로 오게 됩니다. ZIndex 속성을 사용하면 이 순서를 변경할 수 있습니다. 각 직사각형이 원보다 나중에 정의되기 때문에, 서로 겹쳐서 가장 나중의 사각형이 맨 위에 나옵니다. Panel.ZIndex로 순서를 지정해 줄수 있습니다. 참고 사이트 WPF Tutorial 만만하게 보이지 않는 첫인상 (나이토 요시히토 지음) 양뱅이의 일반서적 리뷰 2탄! 만만하게 보이지 않는 첫인상. 내 맘대로 리뷰 시작합니다! 줄거리(이 책은 단란 단락으로 사람의 심리를 나타낸 책) 이 책을 통해 상대의 마음을 사로잡는 첫인상뿐만 아니라 강력한 이미지를 표출하는 사람이 되자! #1 모든 인간관계는 첫인상으로 결정된다. 1. 진짜로 웃을 때에는 광대 근육이 위로 올라간다. 2. '초두효과'는 뇌가 가진 한계성 때문에 발생한다. 뇌는 처음 들어온 정보를 입력한 뒤에 그 후에 들어오는 정보는 앞선 정보의 틀에 맞춰 해석하려는 경향이 있다. 2.1 소개팅이나 면접에서 똑똑하다, 근면하다의 특성을 더 빨리 그리고 더 많이 강조하자. 3. 상대방의 호감을 결정하는데 대화의 내용이 7%, 목소리 38%, 보디랭기지 같은 시각적 이미지가 55%이다. 즉.. 스물아홉 생일, 1년후 죽기로 결심했다(하이마 아마리 지음) 양뱅이의 일반 서적 리뷰 1탄! 스물아홉 생일, 1년 후 죽기로 결심했다. 내 맘대로 리뷰 시작합니다! 줄거리 주인공 아마리는 29살을 생일을 혼자 맞이하게 됩니다. 그것도, 작은 3평짜리 단칸방에 어느 누구의 축하도 없이 혼자서 편의점에서 산 딸기 케이크에 촛불을 켜고 노래를 합니다. Happy brithday to me 노래가 끝나고, 딸기를 먹으려다 떨어트리게 되고, 그것을 씻어 먹으려는 자신의 모습에 절망하고 자살을 결심하게 되지만 죽을 용기 조차 없었습니다. 그때, 텔레비전에서 나오는 라스베이거스의 행복한 모습에 1년 후 라스베이거스에 가서 죽기로 결심하게 됩니다. 라스베이거스에 가기 위해 돈이 필요한데 가진돈은 한 달치 월세 정도?! 그래서 악착같이 돈을 벌기 위해 노력하게 됩니다. 어짜피.... [C#] 널 조건부 연산자 / 널 연산자 널 조건부 연산자(Null-donditional Operator) null 조건부 연산자는 피연산자가 null이 아닌 것으로 평가되었을 때만 맴버액세스 ?. 연산을 피연산자에 적용하며, 그렇지 않으면 null을 반환합니다. a가 null로 평가되면 a?.x의 결과는 null 입니다 a가 null이 아닌 것으로 평가되면 a?.x의 결과는 a.x와 같습니다. ?. 사용 방법 public void Run() { //입력된 str값이 널이 아닐경우, str.string()값을 리턴 null일경우 null을 리턴 Func checkNullString = delegate (string str) { return str?.ToString(); }; Console.WriteLine(checkNullString(null).. [C#] C# 5.0 await / async - 비동기 FileRead => ReadAsync await / async C# 5.0에서는 await / async 예약어가 추가되었습니다. 이 예약어를 이용하면 비동기 호출을 사용할 수 있습니다. 만약 동기 FileRead 상태라면 public void Run() { //데이터 Read를 동기로 호출! SyncRead(); //호출이 완료되고 Main에서는 1ms로 숫자를 표시 for(int i=0; i< 30; i++) { Console.WriteLine(i); Thread.Sleep(1); } } private async void SyncRead() { using (FileStream fs = new FileStream(@"./YangbengHis.xml", FileMode.Open, FileAccess.Read)) { byte[] buffer .. 이전 1 2 3 4 다음