본문 바로가기

워크/C# 기본 문법

고급 기능

C#의 고급 기능에는 여러 가지가 있습니다. 여기 몇 가지 중요한 것들을 간략하게 설명하겠습니다:

 

상속: C#에서 한 클래스는 다른 클래스의 멤버들을 상속받을 수 있습니다. 이를 통해 코드의 재사용성이 향상됩니다.

class Person
{
    public string name;
    public int age;
}

class Student : Person
{
    public int grade;
}

Student student = new Student();
student.name = "John";
student.age = 20;
student.grade = 3;

다형성: 다형성은 여러 형태를 가지는 것을 의미합니다. C#에서는 오버로딩과 오버라이딩을 통해 다형성을 구현할 수 있습니다.

  • 오버로딩: 같은 이름의 메소드를 여러 개 선언하지만, 매개변수의 타입이나 개수가 다르게 하는 것입니다.
  • 오버라이딩: 부모 클래스의 메소드를 자식 클래스에서 재정의하는 것입니다.
class Calculator
{
    public int Add(int a, int b)
    {
        return a + b;
    }

    public double Add(double a, double b)
    {
        return a + b;
    }
}

class AdvancedCalculator : Calculator
{
    public int Multiply(int a, int b)
    {
        return a * b;
    }
}

인터페이스: 인터페이스는 메소드, 프로퍼티, 이벤트 등의 선언만 포함하며, 구현 내용은 포함하지 않습니다. 클래스는 인터페이스를 구현하여 인터페이스에 선언된 멤버들을 정의해야 합니다.

interface IPerson
{
    string Name { get; set; }
    int Age { get; set; }
    void SayHello();
}

class Person : IPerson
{
    public string Name { get; set; }
    public int Age { get; set; }

    public void SayHello()
    {
        Console.WriteLine("Hello, " + Name);
    }
}

제네릭: 제네릭은 타입을 매개변수로 가지는 클래스, 메소드, 인터페이스 등을 선언할 수 있게 해줍니다

class GenericList<T>
{
    public void Add(T item)
    {
        // ...
    }
}

GenericList<int> list = new GenericList<int>();
list.Add(10);

예외 처리: C#에서는 try-catch-finally 블록을 사용하여 예외를 처리합니다.

try
{
    int a = 10;
    int b = 0;
    int c = a / b;
}
catch (DivideByZeroException ex)
{
    Console.WriteLine("Cannot divide by zero");
}
finally
{
    Console.WriteLine("This block is always executed");
}

람다 식: 람다 식은 익명 함수를 선언하는 데 사용됩니다.

Func<int, int, int> add = (a, b) => a + b;
int result = add(10, 20);
Console.WriteLine(result);

LINQ (Language Integrated Query): LINQ는 데이터를 쿼리하고 변형하는 데 사용됩니다.

int[] numbers = { 1, 2, 3, 4, 5 };
var evenNumbers = from num in numbers
                  where num % 2 == 0
                  select num;

foreach (var num in evenNumbers)
{
    Console.WriteLine(num);
}

이러한 고급 기능들은 C# 프로그래밍의 핵심 부분입니다. C#은 강력하고 유연한 언어이므로, 이러한 기능들을 잘 이해하고 활용하면 매우 효율적인 코드를 작성할 수 있습니다.

 

 

'워크 > C# 기본 문법' 카테고리의 다른 글

조건문  (0) 2023.09.03
배열  (0) 2023.09.03
상수  (0) 2023.09.03
변수와 자료형  (0) 2023.09.03
기본 문법  (0) 2023.08.27