728x90
반응형

c# 63

[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

[C#] 백준 알고리즘 2439번, 별 찍기 -2

using System; namespace codingstudy { class Program { static void Main() { int n = int.Parse(Console.ReadLine()); // 입력 for (int i=1; i=i+1; j--) // j가 n의 값에서 -1되어 공백을 채우도록 for문 { Console.Write(" "); } for(int k=1; k=i+1이 >로 되어있어서 이 부분을 수정해주었더니 정답이 나왔다. using System; namespace codingstudy { class Program { static void Main() { int n = int.Parse(Console.ReadLine()); int j=n; int k=1; for (int i =..

C#/C# (백준) 2023.01.12

[C# 교과서] 35~37. 생성자, 소멸자, 메서드와 매개변수

생성자 단어 그대로 개체를 생성하면서 무엇인가를 하고자 할 때 사용되는 메서드 생성자 이름이 클래스 이름과 동일 클래스 내에서 클래스 이름과 동일한 이름을 갖는 메서드는 모두 생성자 메서드와 마찬가지로 클래스에 매개변수를 달리하여 생성자를 여러개 만들 수 있음, 이를 생성자 오버로드 또는 오버로딩이라고 함 this 키워드를 사용해서 다른 생성자를 호출할 수도 있음 생성자도 메서드(함수)임 하지만 메서드와 달리 반환 형식을 지정 못함 또 static 생성자는 매개변수를 포함할 수 없으며, 매개변수를 사용하여 필드를 초기화할 때는 istance 생성자인 public 생성자를 사용해야 함 this() 생성자로 다른 생성자 호출하기 생성자에서 this()는 자신의 또 다른 생성자를 의미 this() 생성자로 매..

C#/C# 교과서 2023.01.11

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

using System; namespace codingstudy { class Program { static void Main() { int t = int.Parse(Console.ReadLine()); // 테스트 케이스 입력 int sum = 0; for (int i = 0; i < t; i++) { string[] s = Console.ReadLine().Split(); // 더할 값 입력 int num1 = int.Parse(s[0]); int num2 = int.Parse(s[1]); sum = num1 + num2; Console.WriteLine($"Case #{i+1}: {num1} + {num2} = {sum}"); } } } } 이전 문제의 코드에서 Console.WriteLine부분만..

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