728x90
반응형

C# 69

[C# 교과서] 48~49. 제네릭 클래스 만들기, 확장 메서드 만들기

사용자 정의 클래스를 매개변수로 사용하는 제네릭 클래스 - 성능 향상을 가져다 주는 기법을 제네릭 - 매개변수화된 형식을 만드는 데 사용 - 제네릭에 전달하는 매개변수를 형식 매개변수라고 함 컬렉션 이니셜라이저로 제네릭 리스트 초기화 using System; class Person { public string Name { get; set; } } class Main2 { static void Main() { List people = new List { new Person { Name = "이재현"}, new Person { Name = "이주연"}, new Person { Name = "김영훈"} }; foreach (var person in people) { Console.WriteLine(person..

C#/C# 교과서 2023.02.06

[C#] 백준 알고리즘 10807번, 개수 세기

내가 쓰다가 요상해진 코드 using System; using System.Linq; namespace codingstudy { class Program { static void Main() { int count = 0; int[] input; int v; int n = int.Parse(Console.ReadLine()); // 정수 개수 입력 for (int i = 0; i < n; i++) { input = Array.ConvertAll(Console.ReadLine().Split(), int.Parse); // n만큼 input 배열에 저장 } // 찾으려고 하는 정수 v v = int.Parse(Console.ReadLine()); foreach(int n in input) { if (input..

C#/C# (백준) 2023.01.31

[C# 교과서] 46~47. 특성과 리플렉션, 개체와 개체 지향 프로그래밍

Obsolete 특성 [Obsolete] void OldMember() => Console.WriteLine("Old Method"); OldMember(); // 하면 밑줄이 생기고 마우스를 올리면 경고 메시지가 표시 Obsolete 특성은 라이브러리 또는 프레임워크를 제작할 때 기존 하위 호환성을 위해 코드를 남겨 놓지만, Obsolete 특성이 적용된 메서드는 사용하지 않도록 권장하는 목적이 강함 특성의 매개변수 위치 매개변수 : 특성에 전달되는 매개변수는 위치에 따라 구분됨 이름 매개변수 : 특성에 구현된 속성 또는 필드에 값을 전달할 때 사용 Conditional 특성 특정 기호에 따라 실행 여부 결정 [Conditional("DEBUG")] static void DebugMethod() => ..

C#/C# 교과서 2023.01.30

[C# 교과서] 44~45. 메서드 오버라이드, 인터페이스

메서드 오버라이드 : 재정의 클래스 관계를 따지는 상속 개념에서 부모 클래스에 이미 만든 메서드를 동일한 이름으로 자식 클래스에서 다시 정의(재정의)해서 사용한다는 개념이 메서드 오버라이드 메서드 오버라이드는 메서드를 새롭게 정의하는 것 오버라이드, 오버라이딩이라는 표현은 동일 부모 클래스에 virtual 키워드로 선언해 놓은 메서드는 자식 클래스에서 override 키워드로 재정의해서 사용 가능 상속 관계에서 메서드 오버라이드 public class Parent { public void Say() => Console.WriteLine("부모_안녕하세요"); public void Run() => Console.WriteLine("부모_달리다"); public virtual void Walk() => Co..

C#/C# 교과서 2023.01.30

[C# 교과서] 42~43. 클래스 기타, 상속으로 클래스 확장하기

부분 클래스 클래스를 선언할 때는 partial 키워드를 붙여 CS 파일 여러개로 클래스를 분할하고, 컴파일할 때는 클래스 하나로 컴파일하도록 만들 수 있는 기능이 추가 // Hello 클래스의 첫 번째 파일 : FirstDeveloper.cs using System; namespace PartialClassDemo { public partial class Hello { public void Hi() => Console.WriteLine("FirstDeveloper.cs"); } } // Hello 클래스의 두 번째 파일 : SecondDeveloper.cs using System; namespace PartialClassDemo { public partial class Hello { public voi..

C#/C# 교과서 2023.01.27

[C# 교과서] 40~41. 대리자, 이벤트

대리자(위임/델리게이트) 대리자(delegate)는 매개변수 목록 및 반환 형식이 있는 메서드 참조(포인터)를 나타내는 형식 대리자는 함수 자체를 데이터 하나로 보고 의미 그대로 다른 메서드를 대신 실행하는 기능 한 번에 메서드 하나 이상을 대신해서 호출 내부적으로 MulticastDelegate 클래스에서 기능을 상속 using System; class DelegateDemo { // 함수 생성 -> 매개변수도 없고 반환값도 없는 함수 static void Hi() => Console.WriteLine("Hi"); // 대리자 생성 -> 매개변수도 없고 반환값도 없는 함수를 대신 실행할 대리자 delegate void SayDelegate(); static void Main() { // Hi 함수를 s..

C#/C# 교과서 2023.01.18

[C# 교과서] 38~39. 속성, 인덱서와 반복기

속성 클래스의 멤버 중에서 속성은 단어 그대로 클래스 속성을 나타냄 괄호가 없는 메서드와 비슷 개체 필드 중에 외부에 공개하고자 할 때 사용하는 방법 코드에서는 private 성격이 있는 필드를 public 속성으로 외부에 공개할 때 사용 클래스 안에 선언된 필드 내용을 설정(set)하거나 참조(get)할 때 사용하는 코드 블록을 속성 class 클래스이름 { public [반환형식] 속성이름 {get; set;} } 속성 정의 구문의 마지막에는 세미콜론이 붙지 않음 속성을 선언과 동시에 특정한 값으로 초기화할 때는 세미콜론이 붙음 static을 붙여 정적인 속성을 만들 수 있음 속성에 값을 설정하는 것을 세터(setter) 값을 읽어오는 것을 게터(getter) class Person { private..

C#/C# 교과서 2023.01.17

[C#] 백준 알고리즘 10951번, A+B - 4

using System; namespace codingstudy { class Program { static void Main() { while (true) { string input = Console.ReadLine(); if (input == null) break; string[] s = input.Split(); int num1 = int.Parse(s[0]); int num2 = int.Parse(s[1]); int sum = num1 + num2; Console.WriteLine(sum); } } } } 처음에는 5번 문제를 먼저 풀었어서 5번 문제에서 조금 수정하고 답을 냈다. 근데 런타임 에러가 난 것이다. 뭐지? ? 하고 질문을 봤더니 이 문제의 요점은 끝나는 지점이 없기 때문에 런타임 에..

C#/C# (백준) 2023.01.12

[C#] 백준 알고리즘 10952번, A+B - 5

using System; namespace codingstudy { class Program { static void Main() { int sum = 0; int num1=1, num2=1; while (num1!=0 && num2!=0) { string[] s = Console.ReadLine().Split(); // 더할 값 입력 num1 = int.Parse(s[0]); num2 = int.Parse(s[1]); sum = num1 + num2; if (num1!=0 && num2!=0) { Console.WriteLine($"{sum}"); } } } } } 맞긴 맞았는데 메모리가 너무 많은 것 같다고 느꼈다.. 언어따라 다른지 모르겠지만 1KB인 사람도 있었으니.. 나도 좀 줄여봐야겠다 usi..

C#/C# (백준) 2023.01.12
728x90
반응형