차례[숨다][보여 주다]
- 1. C#이 정확히 무엇인가요?
- 2. C#과 C의 차이점은 무엇입니까?
- 3. 클래스란 정확히 무엇인가요?
- 4. 객체란 정확히 무엇입니까?
- 5. 정적, 공개 및 무효라는 용어의 차이점은 무엇입니까?
- 6. 생성자를 정의합니다.
- 7. 가비지 컬렉션에서 C#이란 무엇입니까?
- 8. C#에서 구조는 정확히 무엇을 의미합니까?
- 9. C# 코드는 어떻게 컴파일됩니까?
- 10. 다양한 C# 클래스를 명확하게 설명합니다.
- 11. 지그재그 배열이란 정확히 무엇입니까?
- 12. out 매개변수와 ref 매개변수의 차이점은 무엇입니까?
- 13. C#에서 소멸자란 무엇입니까?
- 14. C#에서 인덱서는 무엇입니까?
- 15. 관리 코드와 비관리 코드의 차이점은 무엇입니까?
- 16. 직렬화를 설명하십시오.
- 17. C#에서 필드와 속성은 어떻게 다른가요?
- 18. C#에서 using 문을 어떻게 자세히 설명할 수 있습니까?
- 19. 같은 클래스에 같은 메서드 이름을 가진 수많은 인터페이스를 어떻게 구현합니까?
- 20. C#에서 태스크와 스레드의 차이점은 무엇입니까?
- 21. C#의 finalize 함수는 무엇입니까?
- 22. 블록 마무리와 마무리를 구별하십시오.
- 23. C#의 dispose 메서드를 자세히 설명합니다.
- 24. C# 메소드 오버로딩이란? 해명하다.
- 25. 읽기 전용과 상수의 차이점은 무엇입니까?
- 26. 사용자 제어 및 사용자 정의 제어란 무엇입니까?
- 27. C#에서 멀티캐스트 대리자란 무엇입니까?
- 28. C#에서 개체 풀링이란 정확히 무엇입니까?
- 29. C#.NET에서 제네릭이란 정확히 무엇입니까?
- 30. 비공개 가상 메서드를 재정의할 수 있습니까?
- 31. C#에서 메서드 오버로딩과 메서드 오버라이드를 구분합니까?
- 32. C#에서 String과 StringBuilder의 차이점은 무엇입니까?
- 33. 대리인이란 정확히 무엇입니까?
- 34. C#에서 언제 멀티스레딩을 사용해야 하고 언제 피해야 합니까?
- 35. C#에서 멀티캐스트 대리자란 무엇입니까?
- 36. C#에서 후기 바인딩과 초기 바인딩의 차이점은 무엇입니까?
- 37. 다이렉트캐스트와 Ctype의 차이점은?
- 38. HashSet은 C#에서 어떻게 활용되나요?
- 39. C#의 Thread Pooling에 대해 설명해주세요.
- 40. C#에서 Const 키워드와 ReadOnly 키워드의 차이점은 무엇입니까?
- 41. C# XSD 파일과 관련하여 어떤 세부 정보를 제공할 수 있습니까?
- 42. 접근자 속성 가져오기 및 설정은 당신에게 무엇을 의미합니까?
- 43. C#에서 의존성 주입이란 정확히 무엇입니까?
- 결론
C#(이전의 C 샤프)은 개발자가 여러 활동을 수행하고 여러 목표를 달성하는 데 자주 사용하는 객체 지향 프로그래밍 언어입니다.
C++, Python 및 Java와 같은 객체 지향 프로그래밍 언어는 다양한 형태로 제공됩니다. 이러한 프로그래밍 언어는 특정 프레임워크 내에서 작동하도록 설계되었습니다. 마찬가지로 C#은 특정 프레임워크, 즉 NET용으로 작성 및 개발됩니다.
.NET 프레임워크는 Microsoft. 애플리케이션, 선언, 애플리케이션 지침 등을 개발하기 위한 방대한 플랫폼을 제공합니다. C#은 웹 개발, 게임, 모바일 앱, Windows 응용 프로그램 및 기타 유사한 프로젝트.
이러한 장점으로 인해 C#의 사용이 확대되었고 이를 정확하게 활용할 수 있는 전문가의 필요성이 두 배로 증가했습니다. C#이 워낙 유명하기 때문에 프로그래밍 언어, 수많은 크고 작은 회사가 제품을 기반으로합니다.
따라서 기본 및 고급 수준 C# 질문을 연습하여 인터뷰에 성공하십시오.
1. C#이 정확히 무엇인가요?
Microsoft C#은 현대적인 범용, 객체 지향 프로그래밍 언어. C#은 다양한 컴퓨터 시스템 및 아키텍처에서 수많은 고급 언어를 사용할 수 있도록 하는 실행 코드와 런타임 환경으로 구성된 CLI(공용 언어 인프라)를 위한 것입니다.
2. C#과 C의 차이점은 무엇입니까?
C는 일반적으로 절차적 언어로 알려져 있지만 C#은 보다 객체 지향적입니다. 주요 차이점은 C#에서는 CLR(공용 언어 런타임)을 통해 자동화된 가비지 수집을 허용하지만 C에서는 허용하지 않는다는 것입니다. C#을 실행하려면 .NET 프레임워크가 필요하지만 C는 플랫폼 독립적인 언어입니다.
3. 클래스란 정확히 무엇인가요?
클래스는 객체를 빌드하기 위한 템플릿 역할을 합니다. 기술과 함께 속성이 있습니다. 단일 클래스에서 객체의 여러 인스턴스를 생성할 수 있습니다.
4. 객체란 정확히 무엇입니까?
객체로 알려진 클래스 인스턴스는 클래스의 기능에 액세스하는 방법입니다. 객체를 구성하기 위해 "new" 키워드를 사용할 수 있습니다. 메모리에 개체를 생성하는 클래스의 함수, 데이터 멤버 및 동작이 저장됩니다.
5. 정적, 공개 및 무효라는 용어의 차이점은 무엇입니까?
프로그램의 어디에서나 공개적으로 정의된 변수에 액세스할 수 있습니다. 정적 변수는 클래스 인스턴스를 빌드할 필요 없이 전역적으로 액세스할 수 있습니다. C#에서 Void라는 형식 수정자는 메서드의 반환 형식을 나타내는 데 사용됩니다.
6. 생성자를 정의합니다.
생성자는 클래스별 멤버 함수입니다. 객체가 생성되면 생성자가 자동으로 호출됩니다. 클래스는 초기화될 때 데이터 멤버의 모든 값을 생성합니다.
7. 가비지 컬렉션에서 C#이란 무엇입니까?
원하지 않는 항목이 차지한 메모리를 정리하는 프로세스를 가비지 수집이라고 합니다. 클래스 객체는 힙 메모리에 생성될 때 일정량의 메모리가 자동으로 할당된다. 이제 항목 작업을 마쳤으므로 이전에 차지했던 메모리 공간이 낭비됩니다. 메모리를 확보해야 합니다.
8. C#에서 구조는 정확히 무엇을 의미합니까?
C#에서 구조체는 메서드, 필드, 생성자, 상수, 속성, 인덱서, 연산자 및 기타 구조체와 같은 다양한 데이터 형식으로 구성된 데이터 형식입니다. 구조는 많은 데이터 종류를 단일 단위로 통합하는 데 도움이 됩니다. 이러한 방식으로 코스와 유사합니다. 구조체는 값 유형이고 클래스는 참조 유형입니다.
9. C# 코드는 어떻게 컴파일됩니까?
프로젝트가 생성되면 C# 소스 코드가 IL(Intermediate Language)로 컴파일됩니다. IL은 기계 프로세서에서 실행할 기계어 코드를 생성하는 명령 모음입니다. 코드는 전처리기에서 컴파일러로, 그 다음 어셈블러로, 마지막으로 링커로 XNUMX단계로 전송됩니다.
10. 다양한 C# 클래스를 명확하게 설명합니다.
- 정적: 인스턴스화할 수 없는 클래스이므로 new 키워드를 사용하여 개체를 만들 수 없지만 클래스 이름을 사용하여 클래스의 멤버를 직접 호출할 수 있습니다.
- Abstract: 추상 클래스를 정의하려면 abstract 키워드를 사용합니다. 추상 클래스에는 객체를 생성할 수 없습니다. 사용하려면 하위 클래스에서 상속되어야 합니다. Abstract 클래스 내에서 추상 및 비추상 메서드의 간단한 정의가 허용됩니다.
- 부분적: 이 클래스를 사용하면 속성, 메서드 및 이벤트를 여러 소스 파일로 분리할 수 있으며 나중에 빌드 시 단일 클래스로 결합됩니다.
- 봉인: 봉인된 클래스는 다른 클래스에서 상속될 수 없으며 제한된 특성을 가집니다. 접근 한정자는 봉인된 클래스에 추가할 수 없습니다.
11. 지그재그 배열이란 정확히 무엇입니까?
배열 요소가 있는 배열을 들쭉날쭉한 배열이라고 합니다. 들쭉날쭉한 배열의 요소는 모양과 크기가 다양할 수 있습니다.
12. out 매개변수와 ref 매개변수의 차이점은 무엇입니까?
인수를 ref로 제공할 때 매개변수는 메소드에 전달되기 전에 초기화되어야 합니다. 반면에 out 매개변수는 메서드에 제공되기 전에 초기화할 필요가 없습니다.
13. C#에서 소멸자란 무엇입니까?
소멸자는 클래스의 일부인 C#의 메서드 유형입니다. 소멸자의 주요 기능은 메모리를 확보하기 위해 더 이상 필요하지 않은 클래스의 인스턴스를 삭제하는 것입니다. 소멸자는 종료자라고도 합니다.
14. C#에서 인덱서는 무엇입니까?
인덱서는 C#에서 클래스 또는 구조의 인스턴스를 찾는 데 사용됩니다. 따라서 인덱싱된 값은 배열과 유사하게 액세스할 수 있지만 형식이나 인스턴스 멤버를 명시적으로 선언하지 않아도 됩니다.
15. 관리 코드와 비관리 코드의 차이점은 무엇입니까?
관리 코드를 사용하면 관리되는 CLR 런타임 환경에서 .NET 프레임워크의 코드를 실행할 수 있습니다.
제어 코드는 운영 체제가 아닌 관리되는 런타임 환경에서 실행됩니다. 쓰레기 수집기, 예외 처리 등 다양한 서비스를 제공합니다.
비관리 코드는 CLR에서 실행되지 않고 .NET 프레임워크 외부에서 작동하는 코드입니다. 그들은 높은 수준의 언어 서비스를 제공하지 않으므로 그들 없이 작동합니다. C++가 그러한 예입니다.
16. 직렬화를 설명하십시오.
네트워크를 통해 항목을 전송하려면 항목에서 바이트 스트림을 만들어야 합니다. 직렬화는 항목을 바이트 스트림으로 변환하는 작업입니다. 직렬화 가능한 항목에 대해 직렬화 인터페이스를 구현해야 합니다. 바이트 스트림에서 객체를 생성하는 것과 반대되는 것을 역직렬화라고 합니다.
17. C#에서 필드와 속성은 어떻게 다른가요?
필드는 데이터를 저장하기 위한 위치 역할을 하는 클래스 멤버 또는 모든 종류의 개체이고, 속성은 개인 필드의 값을 읽고, 쓰고, 계산하는 메서드를 제공하는 클래스 멤버입니다.
18. C#에서 using 문을 어떻게 자세히 설명할 수 있습니까?
using 문은 응용 프로그램 내에서 하나 이상의 리소스 사용을 제한하는 데 사용됩니다. 자원은 지속적으로 소비되고 방출됩니다.
이 명령문의 주요 작업은 원치 않는 리소스를 관리하고 자동으로 해제하는 것입니다. 리소스를 사용하는 개체가 형성되면 개체의 dispose 함수가 호출되어 해당 개체에 필요한 리소스를 해제해야 합니다. 여기서 using 문을 사용하면 편리합니다.
19. 같은 클래스에 같은 메서드 이름을 가진 수많은 인터페이스를 어떻게 구현합니까?
동일한 메소드 이름으로 여러 인터페이스를 구현하려면 함수 본문 내에서 구현하지 마십시오. 대신 메서드 본문에서 직접 인터페이스 이름을 제공합니다. 컴파일러는 어떤 인터페이스 메서드가 참조되고 있는지 인식하여 문제를 해결합니다.
20. C#에서 태스크와 스레드의 차이점은 무엇입니까?
스레드는 자체 스택과 커널 리소스가 있는 실제 운영 체제 스레드입니다. 스레드가 가장 많은 제어를 제공합니다. 스레드를 사용하면 Abort(), Suspend() 또는 Resume()을 수행할 수 있습니다. 스레드의 상태를 관찰하거나 스택 크기, 아파트 상태 및 문화와 같은 속성을 설정할 수 있습니다. CLR은 ThreadPool에 의해 래핑된 스레드 풀을 유지합니다.
태스크 병렬 라이브러리에는 태스크라는 클래스가 있습니다. ThreadPool과 달리 작업에는 자체 운영 체제 스레드가 없습니다. 기본 스케줄러는 ThreadPool에 의해 실행되지만 작업은 TaskScheduler에 의해 실행됩니다. Task가 완료되면 알림을 받고 결과를 얻을 수 있습니다.
21. C#의 finalize 함수는 무엇입니까?
정리 작업에 사용되는 객체 클래스는 finalize() 함수를 정의합니다. 객체에 대한 참조가 장기간 사용되지 않으면 가비지 수집기가 종종 이 함수를 호출합니다.
가비지 수집기는 제어된 리소스를 자동으로 해제하지만 파일 핸들, 데이터 연결 등과 같은 불필요한 리소스를 해제하려면 종료 기능을 명시적으로 구현해야 합니다.
22. 블록 마무리와 마무리를 구별하십시오.
완료된 블록은 예외 처리에 필요하므로 try-and-catch 블록이 완료된 후에 호출됩니다. 예외가 포착되었는지 여부에 관계없이 코드 블록이 실행됩니다. 블록의 코드는 일반적으로 더 깨끗합니다.
finalize 메소드는 가비지 수집 직전에 호출됩니다. 최종 메서드의 주요 책임은 인스턴스가 다시 호출되지 않을 때마다 자동으로 트리거되는 비관리 코드를 정리하는 것입니다.
23. C#의 dispose 메서드를 자세히 설명합니다.
disposeof() 함수는 객체의 사용되지 않은 리소스를 해제합니다. 파일, 데이터 연결 등과 같은 사용되지 않는 리소스. 이 함수는 인터페이스 IDisposable 본문을 선언하여 클래스에 의해 구현되는 인터페이스 IDisposable에 지정됩니다.
dispose 함수는 자동으로 호출되지 않습니다. 프로그래머는 효과적인 자원 활용을 위해 수동으로 구현해야 합니다.
24. C# 메소드 오버로딩이란? 해명하다.
메서드 오버로드는 동일한 이름과 지정된 서명을 사용하여 여러 메서드를 구성하는 데 사용되는 C#의 일반적인 접근 방식입니다. 이 절차는 동일한 클래스로 반복됩니다.
메서드 오버로딩 절차가 완료되면 컴파일러는 메서드 오버로딩을 기반으로 지정된 작업을 호출하는 작업을 시작합니다.
25. 읽기 전용과 상수의 차이점은 무엇입니까?
상수 변수는 컴파일 중에 선언되고 초기화됩니다. 그 이후에는 이 값을 변경할 수 없습니다. 반면에 읽기 전용은 런타임에 값이 할당되면 사용됩니다.
26. 사용자 제어 및 사용자 정의 제어란 무엇입니까?
컴파일된 코드는 사용자 지정 컨트롤을 개발하는 데 사용됩니다. 이들은 도구 상자에 포함될 수 있으며 사용하기 쉽습니다. 이러한 컨트롤을 끌어다 놓아 개발자는 웹 양식에 포함할 수 있습니다.
사용자 컨트롤과 ASP 포함 파일은 매우 유사합니다. 그들은 또한 만들기 쉽습니다. 반면에 사용자 컨트롤은 도구 상자에 추가할 수 없습니다. 또한 당겨서 떨어뜨릴 수 없습니다.
27. C#에서 멀티캐스트 대리자란 무엇입니까?
멀티캐스트 대리자는 동시에 여러 기능에 대한 참조 또는 주소를 유지 관리합니다. 멀티캐스트 대리자를 호출할 때 참조하는 다른 모든 함수도 호출합니다. 여러 메서드를 호출하려면 대리자처럼 전체 메서드 서명을 사용합니다. 예로서:
28. C#에서 개체 풀링이란 정확히 무엇입니까?
개체 풀링은 사물을 다시 작성하지 않고 재활용하는 소프트웨어의 설계 기술입니다. 선택한 항목을 풀에 저장하고 애플리케이션이 요청할 때 사용할 수 있도록 하여 이를 수행합니다. 이 절차는 불필요한 개체 생성을 줄여 성능을 향상시킵니다.
29. C#.NET에서 제네릭이란 정확히 무엇입니까?
제네릭은 코드 중복성을 줄이고 유형 안전성을 개선하며 속도를 개선하기 위해 재사용 가능한 코드 클래스를 만드는 데 사용됩니다. 제네릭으로 컬렉션 클래스를 구성할 수 있습니다.
시스템에서는 ArrayList와 같은 클래스 대신 일반 네임스페이스를 사용해야 합니다. 컬렉션을 위한 네임스페이스. 매개변수화된 유형의 사용은 제네릭에서 권장합니다.
30. 비공개 가상 메서드를 재정의할 수 있습니까?
private 가상 메서드는 클래스에 대해 private이고 외부에서 액세스할 수 없기 때문에 재정의할 수 없습니다.
31. C#에서 메서드 오버로딩과 메서드 오버라이드를 구분합니까?
메서드 재정의는 파생 클래스의 기본 정의를 변경하는 프로세스입니다. 파생 클래스의 메서드는 결국 이 전략의 결과로 다르게 작동합니다.
반면에 메서드 오버로딩은 이름은 같지만 동일한 클래스 아래에 고유한 서명을 가진 여러 메서드를 생성하는 작업으로 설명할 수 있습니다.
32. C#에서 String과 StringBuilder의 차이점은 무엇입니까?
문자열 개체는 변경할 수 없습니다. 즉, 한 번 생성되면 변경할 수 없습니다. 문자열 개체를 변경하려고 하면 새 문자열 개체가 생성됩니다.
반면에 문자열 작성기 개체는 가단성이 있으며 개발자가 적절하다고 생각하는 대로 변경할 수 있습니다.
33. 대리인이란 정확히 무엇입니까?
C++에서 대리자는 기본적으로 함수 포인터와 동일합니다. 둘 사이의 유일한 차이점은 대리자는 형식 안전하지만 함수 포인터는 그렇지 않다는 것입니다. 대리자는 제네릭 형식 안전 함수를 구성할 수 있기 때문에 필요합니다.
34. C#에서 언제 멀티스레딩을 사용해야 하고 언제 피해야 합니까?
종종 스레딩으로 알려진 멀티스레딩은 수많은 활동이 동시에 실행되는 프로그램의 속도를 높이는 효과적인 접근 방식입니다. 다양한 스레드가 이전 단계가 완료될 때까지 기다리지 않고 독립적으로 실행할 수 있도록 합니다. 이것은 프로그램의 속도를 높이는 능력이 있습니다.
그러나 프로그램의 여러 프로세스가 상호 연결되어 있는 경우 멀티스레딩은 권장되지 않습니다. 예를 들어, 단계 B가 먼저 완료되는 단계 A에 종속된 경우 멀티스레딩은 성능 문제와 소프트웨어 결함을 유발할 수 있습니다. 스레딩은 프로그램이 복잡해짐에 따라 점점 더 민감해집니다.
35. C#에서 멀티캐스트 대리자란 무엇입니까?
C#의 멀티캐스트 대리자는 기본 대리자와 달리 수많은 대상 메서드를 참조합니다. 멀티캐스트 대리자가 활용되면 대리자가 가리키는 모든 함수가 호출됩니다. 그것들은 시스템의 MulticastDelegate 클래스의 도움으로 구현됩니다.
36. C#에서 후기 바인딩과 초기 바인딩의 차이점은 무엇입니까?
- 초기 바인딩은 컴파일 시간에 발생하는 반면 후기 바인딩은 런타임 중에 발생합니다.
- 런타임에 발생하기 때문에 늦은 바인딩은 종종 초기 바인딩보다 느립니다.
- 메서드 호출을 해결하기 위해 개체를 사용하는 후기 바인딩과 달리 조기 바인딩은 클래스 정보를 사용하여 메서드 호출을 해결합니다.
37. 다이렉트캐스트와 Ctype의 차이점은?
런타임 형식이 DirectCast에 지정된 형식과 일치해야 하는 개체의 종류는 DirectCast를 사용하여 변환됩니다.
식과 형식 간에 변환을 지정하면 Ctype이 활용됩니다.
38. HashSet은 C#에서 어떻게 활용되나요?
C#에서 HashSet은 고유한 값의 정렬되지 않은 컬렉션입니다. 일반적으로 컬렉션에 중복된 요소가 삽입되는 것을 방지하기 위해 사용되며, 이 작업에서는 목록보다 성능이 좋습니다.
System에서 파생된 HashSet 클래스를 사용하여 구현합니다.
39. C#의 Thread Pooling에 대해 설명해주세요.
C#에서 스레드 풀은 스레드 모음입니다. 이러한 스레드는 기본 스레드의 기능을 방해하지 않고 작업을 수행하는 데 사용됩니다. 스레드 풀의 스레드는 실행이 완료되면 스레드 풀로 돌아갑니다.
System 클래스에는 스레드 풀의 스레드와 해당 작업을 처리하는 클래스가 포함되어 있습니다. 스레딩. ThreadPool은 네임스페이스입니다.
40. C#에서 Const 키워드와 ReadOnly 키워드의 차이점은 무엇입니까?
- ReadOnly는 메서드 내에서 선언할 수 없지만 Const는 선언할 수 있습니다.
- Const는 컴파일 타임 상수이고 ReadOnly는 런타임 상수입니다.
- ReadOnly 값은 변경할 수 있지만 Const 값은 변경할 수 없습니다.
41. C# XSD 파일과 관련하여 어떤 세부 정보를 제공할 수 있습니까?
XSD는 XML 스키마 정의를 나타냅니다. XSD 파일이 XML 파일과 연결되어 있지 않으면 속성, 요소 및 태그가 있을 수 있습니다. XSD 파일은 XML 파일에 대한 프레임워크를 제공하여 XML 파일에 있어야 하는 구성 요소와 속성과 순서를 결정합니다.
42. 접근자 속성 가져오기 및 설정은 당신에게 무엇을 의미합니까?
C#에서 Get 및 Set은 속성을 사용하여 만들어지므로 접근자라고 합니다. 속성을 사용하면 개인 필드 값을 읽고 쓸 수 있습니다. 이러한 개인 필드는 접근자를 통해 액세스됩니다.
Get 속성은 속성 값을 반환하는 데 사용되지만 Set 속성은 값을 설정하는 데 사용됩니다.
43. C#에서 의존성 주입이란 정확히 무엇입니까?
종속성 주입(DI)은 느슨하게 연결된 프로그래밍을 만드는 데 사용되는 C#의 설계 기술입니다. 이 절차는 종속 개체의 생성 및 바인딩을 종속 개체가 의존하는 클래스 외부로 전송합니다. 주요 목표는 향후 코드 수정을 보다 쉽게 관리할 수 있도록 하는 것입니다.
결론
C#은 모든 고급 프로그래밍 언어에서 사용되는 기본 프로그래밍 언어입니다. C# 개발자는 수요가 많으며 프론트엔드 개발, 백엔드 프로그래밍 및 앱 개발과 같은 산업에서 매력적인 경력 전망을 찾을 수 있습니다. 그리고 마이크로소프트가 지원하기 때문에 C#의 인기는 더욱 커질 것입니다.
앞서 언급한 것은 숙련된 전문가와 초보자를 위한 가장 중요한 C# 인터뷰 질문입니다. 보다 해시독의 인터뷰 시리즈 면접 준비에 도움이 됩니다.
댓글을 남겨주세요.