2024-04-26 TIL

조창일·2024년 4월 26일

내배캠

목록 보기
10/51
post-thumbnail

C# 문법 4주차 정리

인터페이스

1) 인터페이스 특징

  • 인터페이스란 클래스가 구현해야 하는 멤버들을 정의하는 것이다.
  • 인터페이스는 클래의 일종이 아니며, 클래스에 대한 제약 조건을 명시하는 것이다.

2) 인터페이스 구현

  • 인터페이스 및 멤버 정의하기
interface IMyInterface
{
    void Method1();
    int Method2(string str);
}
- 인터페이스 구현하기
class MyClass : IMyInterface
{
    public void Method1()
    {
        // 구현
    }    
    public int Method2(string str)
    {
        // 구현
        return 0;
    }
}

※ 인터페이스를 상속받으면 에러가 발생함 -> 바로바로 인터페이스에 구현되어 있는 멤버들을 구현해준다.

3) 인터페이스 vs 추상클래스

  • 인터페이스의 특징과 장단점
    • 인터페이스는 추상적인 동작만 정의하고, 구현을 갖지 않는다.
    • 다중 상속이 가능하며, 여러 클래스가 동일한 인터페이스를 구현할 수 있다.
  • 추상클래스의 특징과 장단점
    • 추상 클래는 일부 동작의 구현을 가지며, 추상 메서드를 포함할 수 있다.
    • 단일 상송만 가능하며, 다른 클래스와 함께 상속 계층 구조를 형성할 수 있다.

열거형

1) 열거형 특징

  • 열거형은 서로 관련된 상수(정수만) 집합을 정의할 때 사용된다.

2) 열거형 구현

  • 열거형 정의
enum MyEnum
{
    Value1,
    Value2,
    Value3
}
  • 열거형 사용
MyEnum myEnum = MyEnum.Value1;
  • 열거형 형변환
int intValue = (int)MyEnum.Value1;  // 열거형 값을 정수로 변환
MyEnum enumValue = (MyEnum)intValue;  // 정수를 열거형으로 변환

예외 처리

1) 예외 처리 구현

  • C#에서는 try-catch 블록을 사용하여 예외 처리를 수행한다.
  • try 블록 내에서 예외가 발생할 수 있는 코드를 작성하고, catch 블록에서 예외를 처리한다.

값형과 참조형

※ C#에서 변수가 데이터를 저장하는 방식을 나타낸다.

1) 값형

  • 값형은 변수에 값을 직접 저장한다.
  • 변수가 실제 데이터를 보유하고 있으며, 해당 변수를 다른 변수에 할당하거나 전달할 때는 값이 복사된다.
  • 값형 변수의 수정은 해당 변수의 값만 변경하므로 다른 변수에 영향을 주지 않는다.
  • int, float, double, bool 등의 기본 데이터 타입들이 값형에 해당한다.

2) 참조형

  • 참조형은 변수가 데이터에 대한 참조(메모리 주소)를 저장한다.
  • 변수가 실제 데이터를 가리키는 참조를 갖고 있으며, 해당 변수를 다른 변수에 할당하거나 전달할 때는 참조가 복사된다.
  • 참조형 변수의 수정은 동일한 데이터를 가리키고 있는 다른 변수에 영향을 줄 수 있다.
  • 클래스, 배열, 인터페이스 등이 참조형에 해당한다.

박싱과 언박싱

※ 값형과 참조형 사이의 변환을 의미한다.

1) 박싱

  • 값형을 참조형으로 변환하는 과정을 말한다.

2) 언방식

  • 박싱된 객체를 다시 값형으로 변환하는 과정을 말한다.

개인 과제 해설을 들으면서...

/ 열거형

  • 열거형은 쉽게 말해 [숫자에 이름을 붙여 가독성을 높이는 문법]이다.

/ LINQ

  • LINQ는 Language Integrated Query의 약자로, 구구절절한 데이터 로직을 쉽게 정리 할수 있도록 하는 구문이다.
  • 너무 과도하게 쓰는 것은 좋지 않지만(성능), 코드가 훨씬 깔끔해진다.

/ Static

  • 클래스의 각각의 인스턴스(개별 객체)에 속해있지 않고, 클래스 그 자체에 속해있는 변수
    ※ (학생의 수 NumStudent를 Student클래스에 저장할 때 각각의 학생이 저장하는 게 아니고, Student 클래스 자체가 NumStudent를 저장하는 것)

/ Thread.Sleep()

  • 몇 밀리세컨드동안 멈출건지 정한다.
profile
안녕하세요.

0개의 댓글