다음은 C# 기본 면접 질문 125개와 답변 목록입니다. 이러한 면접 질문은 간단하고 직설적이며 C#의 가장 기본적인 개념을 다루고 있으며, 대부분 객체 지향 개념과 관련되어 있습니다. 따라서 C# 인터뷰를 준비하고 있다면 125가지 기본 C# 인터뷰 질문과 답변을 숙지하여 C# 개념을 검토해야 합니다. 이제 125개의 필수 C# 인터뷰 질문과 답변 목록을 살펴보겠습니다.
1. C#이란?
C#("C 샤프"로 발음)은 단순하고 기존의 객체 지향적이고 형식이 안전한 프로그래밍 언어와는 다릅니다. C 및 C++ 프로그래머는 이에 빠르게 익숙해질 것입니다. 생산성이 높은 RAD(Rapid Application Development) 언어가 C#에 결합되었습니다.
2. C#의 주석 유형은 무엇인가요?
C#에는 세 가지 주석 유형이 있습니다.
한 줄(//)
여러 줄(/* */)
페이지/XML 주석(///).
3. C#.NET에서 사용되는 네임스페이스는 무엇인가요?
네임스페이스는 유형을 논리적으로 그룹화한 것입니다.
System 사용
System.Collections.Generic 사용
System.Windows.Forms 사용
4. C#의 특징은 무엇인가요?
C#의 특징은 다음과 같습니다.
단순
유형 안전성
유연함
객체 지향
호환성
지속성
상호 운용성
다름 전통에서
5. 상속에는 어떤 종류가 있나요?
객체 지향 프로그래밍의 네 가지 상속 유형:
단일 상속: 기본 클래스와 파생 클래스가 포함됩니다.
계층적 상속: 기본 클래스와 동일한 기본 클래스에서 상속되는 파생 클래스를 포함합니다.
다단계 상속: 파생 클래스에서 파생된 클래스를 포함합니다.
다중 상속: 여러 기본 클래스와 하나의 파생 클래스를 포함합니다.
6. 객체지향 프로그래밍의 기본 개념은 무엇인가요?
객체 지향 프로그래밍에서 널리 사용되는 몇 가지 개념을 이해하는 것이 필요합니다. 여기에는 다음이 포함됩니다:
객체
클래스
데이터 추상화 및 캡슐화
상속
다형성
동적 바인딩
정보 전달.
7. 여러 인터페이스를 상속받을 수 있나요?
그렇습니다. C#에서는 여러 인터페이스를 상속할 수 있습니다.
8. 상속이란 무엇입니까?
상속은 기존 클래스에서 파생된 새로운 클래스입니다.
9. 범위를 정의하시겠습니까?
범위는 코드에서 변수에 접근할 수 있는 영역을 나타냅니다.
10. public, static, void의 차이점은 무엇인가요?
public: 키워드 public은 액세스 한정자이며, 누구든지 기본(Main) 메서드를 호출할 수 있음을 C# 컴파일러에 알리는 데 사용됩니다.
static: static 키워드는 기본 메서드가 전역 메서드이고 클래스 인스턴스 없이 액세스할 수 있음을 나타냅니다. 컴파일러는 메소드의 주소를 진입점으로 저장하고 이 정보를 사용하여 객체가 생성되기 전에 실행을 시작합니다.
void: 키워드 void는 기본 메서드가 어떤 값도 반환하지 않음을 나타내는 유형 수정자입니다.
11. C#의 수식어는 무엇인가요?
추상
봉인
가상
상수
이벤트
외부
재정의
읽기 전용
정적
새
12 . C#의 액세스 한정자 유형은 무엇입니까?
C#의 액세스 수정자는 다음과 같습니다.
public
protect
private
internal
internal protected
13. ?
변수 값 유형은 암시적으로 참조 유형으로 변환되어 박싱이 됩니다. 예를 들어 정수에서 객체로의 유형 변환과 같습니다.
참조 유형 변수를 값 유형으로 다시 변환하면 unboxing이 됩니다.
14. 대상은 무엇인가요?
객체는 클래스의 인스턴스입니다. 새 작업을 사용하여 개체가 생성됩니다. 클래스는 특정 개체의 값과 동작(또는 메서드)에 대한 정보를 포함하는 개체 를 메모리에 생성합니다.
15. C#에는 어떤 유형의 배열이 있나요?
1차원 배열(Single-Dimensional)
다차원 배열(MultiDimensional)
Jagged 배열.
16. 객체와 인스턴스의 차이점은 무엇인가요?
사용자 정의 유형의 인스턴스를 객체라고 합니다. 클래스에서 많은 객체를 인스턴스화할 수 있습니다.
객체는 클래스의 인스턴스입니다.
17. 소멸자를 정의하시겠습니까? 소멸자를 정의하시겠습니까?
클래스 객체가 범위를 벗어나거나 명시적으로 삭제되면 소멸자가 호출됩니다. 소멸자는 이름에서 알 수 있듯이 생성자 에 의해 생성된 객체를 파괴하는 데 사용됩니다. 생성자와 마찬가지로 소멸자는 클래스 멤버 메서드 입니다. 메서드 이름은 클래스 이름과 동일하지만 물결표로 시작합니다.
18. 열거형 데이터 유형 을 사용하는 방법은 무엇입니까?
열거형은 이름과 숫자를 연결하는 방법을 제공하여 코드의 이해도를 높이는 또 다른 사용자 정의 유형입니다. enum 키워드는 단어 그룹을 자동으로 열거하여 해당 단어에 0, 1, 2 등의 값을 할당합니다.
19. 생성자를 정의하나요?
생성자는 클래스와 이름이 같은 멤버 메서드입니다. 생성자는 연관된 클래스의 객체가 생성될 때마다 호출됩니다. 클래스의 데이터 멤버 값을 구성하기 때문에 생성자라고 합니다.
20. 캡슐화란 무엇인가요?
데이터와 기능을 하나의 단위(클래스라고 함)로 패키징하는 것을 캡슐화라고 합니다. 캡슐화는 내부 데이터 구조 및 코드와 같은 개체 정보를 포함하고 숨깁니다.
21. C#에서는 다중 상속을 지원하나요?
지원하지 않아 불가능합니다. 다단계 상속을 지원합니다.
22. ENUM이란 무엇인가요?
Enum은 상수 를 정의하는 데 사용됩니다.
23. 데이터세트란 무엇인가요?
DataSet은 모든 데이터 소스에서 로드된 데이터의 메모리 내 표현입니다.
24. 비공개 키워드와 공개 키워드의 차이점은 무엇인가요?
비공개: 키워드 비공개는 기본 액세스 수준이며 다른 모든 액세스 수준 중에서 가장 제한적입니다. 유형 또는 유형 멤버에게 최소한의 권한을 부여합니다. Private 멤버는 자신이 선언된 클래스 본문 내에서만 액세스할 수 있습니다.
공개: 키워드 공개는 액세스 제한이 없는 모든 액세스 수준 중에서 가장 무료입니다. Public 멤버는 외부뿐만 아니라 내부에서도 접근이 가능하며, 클래스 몸체 내부나 외부에 정의된 모든 멤버에 자유롭게 접근할 수 있다.
25. 다형성을 정의하나요?
다형성은 하나의 이름, 다양한 형태를 의미합니다. 이를 통해 프로그램에서 동일한 이름을 가진 두 개 이상의 메서드를 정의할 수 있습니다. 이를 통해 작업을 오버로드하여 다른 인스턴스에서 다르게 동작하도록 할 수 있습니다.
26. 들쭉날쭉한 배열이란 무엇인가요?
가변 배열은 요소가 배열인 배열입니다.
지그재그 배열 요소는 크기와 크기가 다를 수 있습니다.
가끔 배열을 "배열의 배열"이라고도 합니다.
27.추상 기본 클래스란 무엇인가요?
추상 클래스는 기본 클래스 역할을 하기 위해 특별히 설계된 클래스입니다. 추상 클래스에는 하나 이상의 순수 가상 메서드도 있습니다.
28. 메소드 오버라이딩과 메서드 오버로딩의 차이점은 무엇인가요?
메서드를 재정의하면 파생 클래스에서 메서드의 동작이 변경됩니다. 오버로드된 메서드는 단순히 클래스에서 동일한 이름을 가진 다른 메서드를 포함합니다.
29. ref 매개변수와 out 매개변수의 차이점은 무엇인가요?
ref 매개변수에 전달된 매개변수를 먼저 초기화해야 합니다. 대조적으로, out 매개변수의 경우 매개변수가 out 매개변수로 전달되기 전에 명시적인 초기화가 필요하지 않습니다.
30. C#에서 using 문을 사용하는 방법은 무엇인가요?
using 문은 일반적으로 리소스를 획득하고 문을 실행한 다음 리소스를 해제합니다.
31. 연재란 무엇인가요?
직렬화는 객체를 바이트 스트림으로 변환하는 프로세스입니다.
역직렬화는 바이트 스트림 에서 객체 를 생성하는 역과정입니다.
직렬화/역직렬화는 객체를 전달하는 데 자주 사용됩니다.
32. 구조와 클래스의 차이점은 무엇인가요?
구조체는 값 유형이고 클래스는 참조 유형입니다.
구조체에는 생성자와 소멸자가 있을 수 없습니다.
클래스에는 생성자와 소멸자가 모두 있을 수 있습니다.
구조체는 상속을 지원하지 않지만 클래스는 지원합니다.
33. 클래스와 인터페이스의 차이점은 무엇인가요?
클래스는 객체를 논리적으로 표현한 것입니다. 이는 데이터 수집 및 관련 하위 프로세스의 정의입니다.
인터페이스는 메소드 본문 정의 없이 메소드를 포함하는 클래스이기도 합니다. 클래스는 다중 상속을 지원하지 않지만 인터페이스는 지원합니다.
34. 위임이란 무엇인가요?
대리자는 함수 포인터의 유형이 안전한 객체 지향 구현이며 구성 요소가 이를 사용하는 구성 요소를 콜백해야 하는 많은 상황에서 사용됩니다.
35. 인증과 승인이란 무엇인가요?
인증은 사용자를 식별하는 과정입니다. 인증은 인증서(사용자 이름 및 비밀번호)를 사용하여 사용자를 식별/확인합니다.
인증 후 인증이 진행됩니다. 승인은 이러한 사용자 ID를 기반으로 액세스 권한을 부여하는 프로세스입니다.
인증을 통해 사용자는 특정 리소스에 액세스할 수 있습니다.
36. 기본 클래스란 무엇인가요?
클래스 선언은 클래스 이름에 콜론과 기본 클래스 이름을 추가하여 기본 클래스를 지정할 수 있습니다. 기본 클래스 설명을 생략하는 것은 객체 클래스에서 파생되는 것과 같습니다.
37. "this"를 정적 메서드에 사용할 수 있나요?
아니요. 'This'는 정적 메서드에 사용할 수 없습니다. 정적 메서드에서는 정적 변수/메서드만 사용할 수 있습니다.
38. 상수, 읽기 전용, 정적의 차이점은 무엇인가요?
상수: 값은 변경할 수 없습니다.
읽기 전용: 클래스 생성자에서 값이 한 번만 초기화됩니다.
정적: 값은 한 번 초기화될 수 있습니다.
39. C#에서는 어떤 문 유형이 지원되나요?
C#에서 지원하는 여러 가지 문 유형은
블록 문
선언 문
표현 문
선택 문
반복 문
점프 문
입니다. 예외처리문
체크 및 언체크
잠금문
40. 인터페이스 클래스란?
추상 클래스이며 모든 공용 추상 메소드는 상속된 클래스에서 구현되어야 합니다.
41. 값 유형과 참조 유형이 무엇인가요?
값 유형은 스택에 저장됩니다.
예: bool, byte, chat,decimal, double, enum, float, int, long, sbyte, short, strut, uint, ulong, ushort.
참조 유형은 관리되는 힙에 저장됩니다.
예: 클래스, 대리자, 인터페이스, 개체, 문자열.
42. 키워드 string과 System.String 클래스의 차이점은 무엇인가요?
키워드 string은 System.String 클래스의 별칭입니다. 따라서 System.String은 키워드 string과 동일하며 원하는 명명 규칙을 사용할 수 있습니다. String 클래스는 문자열을 안전하게 생성, 조작 및 비교할 수 있는 다양한 방법을 제공합니다.
43. C#에서 제공하는 두 가지 데이터 유형은 무엇인가요?
값 유형
참조 유형
44. 캐시에는 어떤 종류가 있나요?
캐시에는 세 가지 유형이 있습니다.
출력 캐싱: asp.net 페이지의 응답 정보를 저장합니다.
조각 캐싱: 페이지 콘텐츠의 일부만 캐시/저장합니다(사용자 제어).
데이터 캐싱: 성능을 위해 프로그래밍 방식으로 개체를 캐싱합니다.
45. 사용자 정의 제어 와 사용자 제어의 차이점은 무엇인가요?
사용자 정의 컨트롤은 사용하기 쉽지만 생성하기 어렵고 도구 상자에 배치할 수 있는 컴파일된 코드(Dll)입니다. 드래그하여 사용하는 컨트롤입니다.
속성은 디자인 타임에 직관적으로 지정할 수 있습니다. 여러 응용 프로그램에서 사용할 수 있습니다(공유 DLL인 경우). 비공개라도 웹 응용 프로그램의 bin 디렉터리에 복사하여 참조용으로 추가하고 사용할 수 있습니다. 일반적으로 독립 소비자 애플리케이션에 공통 기능을 제공하는 데 사용됩니다.
사용자 컨트롤과 ASP 포함 파일은 생성하기 쉽고 상자에 넣어서 끌어서 놓을 수 없습니다. 사용자 컨트롤은 개별 응용 프로그램 파일 간에 공유됩니다.
46. 방법이란 무엇인가요?
메서드는 계산이나 연산을 구현하기 위해 객체나 클래스에 의해 실행되는 멤버입니다. 정적 메서드는 클래스를 통해 액세스됩니다. 인스턴스 메소드는 클래스의 인스턴스를 통해 액세스됩니다.
47. 도메인이란 무엇인가요?
필드는 클래스 또는 클래스의 인스턴스와 관련된 변수입니다.
48. 이벤트란 무엇인가요?
이벤트는 클래스나 개체가 알림을 제공할 수 있도록 하는 멤버입니다. 이벤트 선언은 선언에 이벤트 키워드가 포함되어 있고 유형이 대리자 유형이어야 한다는 점을 제외하면 도메인 선언과 유사합니다.
49. 텍스트와 그 유형은 무엇인가요?
텍스트는 프로그램이 변수에 할당하는 상수 값입니다. C#에서 지원하는 여러 텍스트 유형은
정수 리터럴
실수 리터럴
부울 리터럴
단일 문자 리터럴)
문자열 리터럴
백슬래시 문자 리터럴
입니다. 50. 값 유형과 참조 유형의 차이점은 무엇입니까?
값 유형은 스택에 저장되며 한 변수의 값을 다른 변수에 할당합니다.
참조 유형은 관리되는 힙에 저장되며 두 참조 변수 간의 할당입니다.
51. C#의 기능은 무엇인가요?
C#은 엔터프라이즈 애플리케이션 작성을 위한 간단하면서도 강력한 프로그래밍 언어입니다.
C++와 VB를 혼합한 것입니다. 명령문, 표현식 및 연산자와 같은 많은 C++ 기능을 유지하고 이를 VB의 생산성과 결합합니다.
C#은 개발자가 네트워크 서비스를 쉽게 구축하고 모든 언어와 플랫폼을 통해 인터넷에 액세스할 수 있도록 도와줍니다.
C#은 개발자가 더 적은 코드로 개발을 완료하여 코드 오류를 줄이는 데 도움이 됩니다.
C#은 형식 안전성, 버전 제어, 이벤트, 가비지 수집 등의 영역에서 상당한 개선과 혁신을 도입했습니다.
52. 오류 유형에는 어떤 것이 있나요?
구문 오류
논리 오류
런타임 오류
53. break 문과 continue 문의 차이점은 무엇인가요?
break 문은 현재 닫힌 루프 또는 해당 루프가 있는 조건문을 종료하는 데 사용됩니다. switch 문에서 빠져나오기 위해 break 문을 사용했습니다.
continue 문은 실행 순서를 변경하는 데 사용됩니다. break 문과 같이 루프를 벗어나는 것과 달리 continue 문은 현재 반복을 중지하고 루프의 맨 위로만 제어를 반환합니다.
54. 네임스페이스를 정의하시겠습니까?
네임스페이스는 컨테이너라고 하며 계층적 .NET 클래스를 구성하는 데 사용됩니다.
55.코드그룹이란 무엇인가요?
코드 그룹은 보안 컨텍스트를 공유하는 제품군 그룹입니다.
56. C#의 봉인 클래스란 무엇인가요?
sealed 수정자는 클래스에서 파생되는 것을 방지하는 데 사용됩니다. 봉인된 클래스가 다른 클래스의 기본 클래스로 지정되면 컴파일 타임 오류가 발생합니다.
57. 정적 메소드와 인스턴스 메소드의 차이점은 무엇인가요?
정적 수정자로 선언된 메서드는 정적 메서드입니다. 정적 메서드는 특정 인스턴스에서 작동하지 않으며 정적 멤버만 액세스할 수 있습니다.
정적 수정자로 선언되지 않은 메서드는 인스턴스 메서드입니다. 인스턴스 메서드는 특정 인스턴스에서 작동하며 정적 및 인스턴스 멤버가 액세스할 수 있습니다. 인스턴스 메서드가 호출되는 인스턴스는 다음과 같이 명시적으로 액세스할 수 있습니다. 이것을 정적 메서드에서 호출하는 것은 잘못된 것입니다.
58. C#에는 어떤 유형의 변수가 있나요?
C#의 다양한 변수 유형은 다음과 같습니다.
정적 변수(정적 변수)
인스턴스 변수(인스턴스 변수)
값 매개변수(값 매개변수)
참조 매개변수( 참조 매개변수)
배열 요소
출력 매개변수
지역 변수
59. 메소드 오버로딩이란 무엇을 의미하나요?
메서드 오버로드를 사용하면 고유한 서명이 있는 한 동일한 클래스에 있는 여러 메서드가 동일한 이름을 가질 수 있습니다. 오버로드된 메서드에 대한 호출을 컴파일할 때 컴파일러는 오버로드 확인을 사용하여 호출할 메서드를 결정합니다.
60. 매개변수란 무엇인가요?
매개변수는 값이나 변수 참조를 메소드에 전달하는 데 사용됩니다. 메소드의 매개변수는 메소드가 호출될 때 지정된 매개변수로부터 실제 값을 가져옵니다. 매개변수에는 값 매개변수, 참조 매개변수, 출력 매개변수, 매개변수 배열 등 4가지 종류가 있습니다.
61. C#은 객체지향 언어인가요?
예, C#은 기존 Java 및 C++와 같은 객체 지향 언어입니다.
62. 어레이와 어레이리스트의 차이점은 무엇인가요?
배열은 동일한 유형의 모음입니다. 배열의 크기는 선언될 때 고정됩니다. 연결리스트는 배열과 유사하지만 크기가 고정되어 있지 않습니다.
63. C#의 특수 연산자는 무엇인가요?
C#은 일부 특수 연산자를 지원합니다.
is(관계 연산자)
as(관계 연산자)
typeof(유형 연산자)
sizeof(관리되지 않는 클래스의 크기를 가져오는 데 사용되는 크기 연산자)
new(객체 연산자)
.dot(멤버 액세스 연산자)
checked(오버플로 검사)
unchecked?(오버플로 검사 방지)
64.
연산자는 클래스 인스턴스에 적용되는 특정 연산식의 의미를 정의하는 멤버입니다. 단항 연산자, 이항 연산자, 변환 연산자의 세 가지 유형의 연산자를 정의할 수 있습니다. 모든 연산자는 공개 및 정적으로 선언되어야 합니다.
65. 유형 매개변수화란 무엇입니까?
유형 매개변수화는 다른 값이나 유형에 대한 유형의 매개변수화입니다.
66. 추상수업의 특징은 무엇인가요?
추상 클래스는 구현할 수 없으며 추상 클래스에 new 연산자를 사용하는 것은 잘못되었습니다.
추상 클래스는 추상 메서드와 항목을 포함하는 것이 허용되지만 필수는 아닙니다.
추상 클래스는 scaled 수정자를 사용할 수 없습니다.
67.추상키워드는 어떻게 사용하나요?
수식자 추상은 클래스 자체가 인스턴스나 객체를 직접 가질 수 없으며 다른 클래스에 대한 "기본 클래스"만 될 수 있음을 나타내기 위해 클래스에 사용되는 키워드입니다.
68.goto문은 어떻게 사용하나요?
goto 문은 C# 언어에 여전히 포함되어 있습니다. 이 goto는 루프 내부에서 외부로 점프하는 데 사용할 수 있습니다. 그러나 루프 외부에서 루프 안으로 점프하는 것은 허용되지 않습니다.
69. 콘솔 애플리케이션과 윈도우 애플리케이션의 차이점은 무엇인가요?
사용자 인터페이스 없이 명령줄에서 실행되도록 설계된 콘솔 애플리케이션입니다.
사용자 인터페이스를 통해 사용자의 데스크톱에서 실행되도록 설계된 창 애플리케이션입니다.
70. return 문은 어떻게 사용하나요?
return 문은 프로그램(메서드 또는 기능)과 관련이 있습니다. return 문이 실행되면 시스템은 호출된 프로그램에서 호출 프로그램으로 제어를 전송합니다. return 문은 두 가지 목적으로 사용됩니다.
현재 실행 중인 코드의 호출자에게 즉시 반환
현재 실행 중인 코드의 호출자에게 일부 값을 반환합니다.
71. 배열과 링크드리스트의 차이점은 무엇인가요?
배열은 서로의 요소 위치에 관심이 없는 단순한 숫자 시퀀스입니다. 그들의 위치는 서로 독립적입니다. 배열 요소를 추가, 삭제 또는 수정하는 것은 매우 쉽습니다. 배열과 비교할 때 연결된 목록은 복잡한 숫자 시퀀스입니다.
72. C#에는 throws 절이 있나요?
아니요. Java와 달리 C#에서는 개발자가 메서드에서 발생할 수 있는 예외를 지정할 필요가 없습니다.
73. C#은 다양한 매개변수를 지원하나요?
예, params 키워드를 사용하세요. 매개변수는 특정 유형의 매개변수 목록으로 지정됩니다.
74. 비공개 가상 메서드를 재정의할 수 있나요?
아니요, 프라이빗 메소드는 클래스 외부에서 접근할 수 없습니다.
75. 멀티캐스트 위임이란 무엇인가요?
각 대리자 개체는 별도의 메서드에 대한 참조를 보유합니다. 그러나 대리자 개체가 여러 메서드에 대한 참조를 보유하고 이를 호출하는 것이 가능합니다. 이러한 대리자 개체는 멀티캐스트 대리자 또는 복합 대리자가 됩니다.
76. C#의 특징은 무엇인가요?
XML 문서.
77. C#에서는 예외 사용이 권장되나요?
예, 예외는 .NET프레임워크에서 권장되는 오류 처리 메커니즘입니다.
78. switch 문에서 break 문은 어떤 역할을 하나요?
break 문은 자신이 속한 루프를 종료합니다. 또한 프로그램 실행 흐름도 변경됩니다.
switch 문에서는 Case 문 끝에 break 문을 사용합니다. break 문은 C#에서 필수이며 하나의 Case 문이 다른 Case 문으로 흘러가는 것을 방지합니다.
79. C#은 객체 지향인가요?
예, C#은 기존 Java 및 C++와 같은 객체 지향 언어입니다.
80. 지능형 내비게이션이란?
서버 측 유효성 검사 및 페이지 새로 고침으로 인해 페이지를 새로 고칠 때 커서 위치는 변경되지 않고 그대로 유지됩니다.
81. CONST와 READONLY의 차이점은 무엇인가요?
은 모두 상수 값을 정의하기 위한 것입니다. const 필드는 해당 필드가 선언된 경우에만 초기화될 수 있습니다. 읽기 전용 필드는 선언 시 또는 생성자에서 정의할 수 있습니다.
82. C#에는 throws 절이 있나요?
아니요. Java와 달리 C#에서는 개발자가 메서드에서 발생할 수 있는 예외를 지정할 것을 요구하거나 허용하지 않습니다.
83. 메서드를 오버로드할 수 있는 다양한 방법이 있나요?
매개변수 유형, 매개변수 수, 매개변수 순서가 다릅니다.
84. 이벤트에 반환값이 있나요?
아니요, 이벤트에는 반환 유형이 없습니다.
85. 무슨 이벤트인가요?
이벤트는 다른 프로그램 방식을 기반으로 수행되는 작업입니다.
이벤트는 발생한 이벤트를 다른 객체에 알리기 위해 객체나 클래스에서 사용하는 대리자 유형 클래스 멤버입니다.
event 키워드를 사용하여 이벤트를 선언할 수 있습니다.
86. 식별자란 무엇입니까?
식별자는 프로그램 내 다양한 개체를 고유하게 식별하는 데 사용되는 이름입니다.
87. C#의 다양한 텍스트 유형은 무엇인가요?
부울 값: True 및 False는 각각 true 및 false 상태에 매핑되는 부울 유형입니다.
정수: Int, uInt, long 및 ulong 유형의 값을 쓰는 데 사용됩니다.
실수: float, double 및 십진수 유형의 값을 쓰는 데 사용됩니다.
문자: 단일 문자를 나타내며 일반적으로 'a'와 같이 인용 문자로 구성됩니다.
문자열: C#은 일반 문자열과 리터럴 문자열이라는 두 가지 유형의 문자열을 지원합니다. 규칙 문자열은 "116110"과 같이 큰따옴표로 묶인 0개 이상의 문자로 구성됩니다. 리터럴 문자열은 @ 문자와 그 뒤에 오는 큰따옴표 문자(예: @"hello")로 구성됩니다.
Null: Null 유형을 나타냅니다.
88. 데이터 캡슐화란 무엇인가요?
데이터 숨기기라고도 하는 데이터 캡슐화는 클래스의 구현 세부 정보를 사용자에게 숨기는 메커니즘입니다. 사용자는 메서드라는 특수 함수를 실행하여 숨겨진 멤버가 있는 클래스에 대해 제한된 작업 집합만 수행할 수 있습니다.
89. 비공개 가상 메서드를 재정의할 수 있나요?
아니요, 프라이빗 메소드는 클래스 외부에서 접근할 수 없습니다.
90. 서브루틴과 함수의 주요 차이점은 무엇인가요?
서브 프로그램에는 반환 값이 없지만 함수에는 반환 값이 있습니다.
91. C#과 C++의 차이점은 무엇인가요?
C#에서는 #include 문을 지원하지 않습니다. using 문만 사용합니다.
C#에서는 클래스 정의 끝에 세미콜론을 사용하지 않습니다.
C#은 다중 상속을 지원하지 않습니다.
C++보다 C#에서 데이터 유형의 명시적 변환이 훨씬 안전합니다.
C#의 Switch는 문자열 값에도 사용할 수 있습니다.
C#과 C++에서는 명령줄 인수 배열의 동작이 다릅니다.
92. 중첩 클래스란 무엇인가요?
중첩 클래스는 클래스 내의 클래스입니다.
중첩 클래스는 다른 클래스나 인터페이스 내에서 선언이 발생하는 모든 클래스입니다.
93. 정적 생성자 함수 매개변수 를 제공할 수 있나요?
아니요, 정적 생성자는 매개변수를 가질 수 없습니다.
94. C#에서는 문자열이 값 유형인가요, 아니면 참조 유형인가요?
문자열은 객체(참조 유형)입니다.
95. C#에서는 복사 생성자를 제공하나요?
아니요, C#은 복사 생성자를 제공하지 않습니다.
96. 클래스나 구조체에 생성자가 여러 개 있을 수 있나요?
예, 클래스나 구조체에는 여러 생성자가 있을 수 있습니다. C#에서는 생성자를 오버로드할 수 있습니다.
97. 인터페이스 인스턴스를 만들 수 있나요?
아니요, 인터페이스 인스턴스를 생성할 수 없습니다.
98. 인터페이스에 필드가 포함될 수 있나요?
아니요. 인터페이스에는 필드가 포함될 수 없습니다.
99. 클래스에 정적 생성자가 있을 수 있나요?
예, 클래스에는 정적 생성자가 있을 수 있습니다. 정적 생성자는 정적 필드에 액세스하기 직전에 자동으로 호출되며 일반적으로 정적 클래스 멤버를 초기화하는 데 사용됩니다. 첫 번째 인스턴스가 생성되거나 정적 멤버가 참조되기 전에 자동으로 호출됩니다. 정적 생성자는 인스턴스 생성자보다 먼저 호출됩니다. 아래에 예가 나와 있습니다.
100. C#에서 위임의 주요 기능은 무엇인가요?
델리게이트는 주로 콜백 메서드를 정의하는 데 사용됩니다.
101. 섀도잉과 오버라이딩의 차이점은 무엇인가요?
재정의는 구현만 재정의하는 반면 프로젝션은 전체 요소를 재정의합니다.
파생 클래스 재정의는 "ME" 키워드를 통해 상위 클래스 요소를 참조할 수 있지만 프로젝션에서는 "MYBASE"를 통해 상위 클래스 요소에 액세스할 수 있습니다.
102. 이벤트에 액세스 한정자를 사용할 수 있나요?
예, 이벤트에서 액세스 한정자를 사용할 수 있습니다. 이벤트에 portected 키워드를 사용하면 상속된 클래스에만 액세스할 수 있습니다. private을 사용하여 현재 클래스의 개체에서만 액세스할 수 있는 이벤트를 수정할 수 있습니다.
103. 코드에 virtual 키워드를 사용하는 이유는 무엇인가요?
코드의 Virtual 키워드는 파생 클래스에서 재정의할 수 있는 메서드와 속성을 정의하는 데 사용됩니다.
104. 생성자와 소멸자는 무엇인가요?
생성자와 소멸자는 특별한 방법입니다.
생성자와 소멸자는 각 클래스의 특별한 메소드입니다.
각 클래스에는 클래스 인스턴스가 생성되거나 소멸될 때 자동으로 호출되는 자체 생성자와 소멸자가 있습니다.
클래스에 액세스할 때마다 생성자는 모든 클래스 멤버를 초기화합니다. 소멸자는 더 이상 필요하지 않은 객체를 파괴합니다.
105. finalize 메소드를 어떻게 억제하나요?
GC.SuppressFinalize().
106. C#에서는 다양한 매개변수를 지원하나요?
예, params 키워드를 사용하세요.
매개변수는 특정 유형(예: int)의 매개변수 목록으로 지정됩니다. 유연성을 최대화하기 위해 유형은 객체일 수 있습니다.
이 방법을 사용하는 표준적인 예는 System.console.writeLine()입니다.
107. 스레드를 시작하는 데 사용되는 방법은 무엇입니까?
시작합니다.
108. 제네릭이란 무엇입니까?
제네릭은 유연하고 강력한 형식의 컬렉션을 만드는 데 도움이 됩니다.
제네릭은 기본적으로 더 나은 재사용성, 더 나은 유지 관리성 등을 유지하기 위해 데이터 유형에서 논리를 분리합니다.
109. 다양한 클래스의 다형성 은 무엇인가요?
다형성에는 두 가지 유형이 있습니다.
컴파일 시간 다형성
런타임 다형성
110. 다형성과 런타임 다형성의 차이점은 무엇입니까?
컴파일 시간 다형성
컴파일 시간 다형성은 메서드 오버로딩이라고도 알려져 있습니다.
메서드 오버로딩은 이름은 같지만 서명이 다른 두 개 이상의 메서드를 의미합니다.
런타임 다형성
런타임 다형성은 메서드 재정의라고도 합니다.
메서드 재정의는 동일한 이름을 가진 두 개 이상의 메서드가 있으며, 동일한 메서드 시그니처를 포함하지만 서로 다른 구현에 해당함을 의미합니다.
111. XML에서 멀티스레드 프로그래밍을 가능하게 만드는 네임스페이스는 무엇입니까?
시스템.스레딩.
112. C#에서 정적 블록을 선언할 수 있나요?
아니요. C#은 정적 블록을 지원하지 않지만 정적 메서드를 지원하기 때문입니다.
113. 메소드를 봉인형으로 선언할 수 있나요?
C#에서는 봉인된 메서드를 선언할 수 없습니다. 그러나 파생 클래스의 메서드를 재정의하면 재정의된 메서드를 봉인된 것으로 정의할 수 있습니다. 이를 봉인함으로써 이 방법을 더 이상 재정의하는 것을 피할 수 있습니다.
114. C#에서 속성을 구현하는 데 사용되는 명령은 무엇입니까?
get 및 set 수정자는 C#에서 속성을 구현하는 데 사용됩니다.
115. 정적 멤버란 무엇인가요?
은 정적 멤버로 정의되어 클래스 인스턴스가 아닌 클래스 수준에서 직접 호출할 수 있습니다.
116. C#에서 클래스를 상속하는 구문은 무엇인가요?
클래스가 다른 클래스에서 파생되면 기본 클래스의 멤버가 파생 멤버가 됩니다.
기본 클래스의 멤버에 액세스하는 데 사용되는 액세스 한정자는 파생 클래스에 있는 기본 클래스 멤버의 액세스 상태를 지정합니다.
C#에서 다른 클래스로부터 클래스를 상속하는 구문은 다음과 같습니다.
class MyNewClass : MyBaseClass
117 while 루프와 do while의 기본 차이점은 무엇인가요? C#의 루프?
while 루프는 처음에 조건을 테스트합니다. 즉, 조건이 true로 평가되면 바깥쪽 문 블록이 0번 이상 실행됩니다. do while 루프는 명령문 블록을 최소한 한 번 반복한 다음 마지막에 조건을 확인합니다.
118. 서브루틴과 함수의 주요 차이점은 무엇인가요?
서브 프로그램에는 반환 값이 없지만 함수에는 반환 값이 있습니다.
119. C#의 봉인 클래스란 무엇인가요?
sealed 수정자는 클래스에서 파생되는 것을 방지하는 데 사용됩니다. 봉인된 클래스가 다른 클래스의 기본 클래스로 지정되면 컴파일 타임 오류가 발생합니다.
120. 클래스와 인터페이스의 차이점은 무엇인가요?
추상 클래스는 일부 멤버를 구현할 수 있지만 인터페이스는 해당 멤버를 구현할 수 없습니다.
인터페이스에는 필드가 있을 수 없지만 추상 클래스에는 필드가 있을 수 있습니다.
인터페이스는 다른 인터페이스에서만 상속할 수 있고 추상 클래스에서는 상속할 수 없지만, 추상 클래스는 다른 추상 클래스나 다른 인터페이스에서만 상속할 수 있습니다.
클래스는 동시에 여러 인터페이스를 상속할 수 있지만, 클래스는 동시에 여러 클래스를 상속할 수 없습니다.
추상 클래스의 멤버는 액세스 한정자를 정의할 수 있지만 인터페이스 멤버는 액세스 한정자를 정의할 수 없습니다.
121. 추상 메소드와 가상 메소드의 차이점은 무엇인가요?
추상 메서드는 구현을 제공하지 않으며 파생 클래스가 메서드를 재정의하도록 강제하는 반면(파생 클래스가 추상 클래스가 아닌 경우) 가상 메서드는 구현을 가질 수 있으며 파생 클래스에서 재정의하는 것은 선택 사항입니다. 따라서 가상 메서드를 구현하고 파생 클래스를 재정의하는 옵션을 제공할 수 있습니다. 추상 메서드는 구현을 제공할 수 없으며 파생 클래스가 메서드를 재정의하도록 강제합니다.
122. 정적 메소드란 무엇인가요?
인스턴스 데이터나 다른 인스턴스 메서드에 액세스하려고 시도하지 않는 한 메서드를 static으로 선언하는 것이 가능합니다.
123. New 수식어란 무엇인가요?
새 수정자는 기본 클래스의 멤버를 숨깁니다. C#은 서명 숨기기만 지원합니다.
124. C#에서 속성을 가져오고 설정하면 어떤 이점이 있나요?
get 속성 접근자는 속성 값을 반환하는 데 사용됩니다.
set 속성 접근자는 새 값을 설정하는 데 사용됩니다.
125. const와 읽기 전용의 차이점은 무엇인가요?
Const로 선언된 필드는 static 수정자를 사용할 수 없지만, readonly는 static 수정자를 사용할 수 있습니다.
const 필드는 선언 시에만 초기화될 수 있는 반면, readonly는 선언 시 또는 생성자에서 초기화될 수 있습니다.
const 필드의 값은 디자인 타임에 계산되는 반면, readonly 값은 런타임에 계산됩니다.
위 내용은 125가지 기본 C# 인터뷰 질문 및 답변 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!