>  기사  >  백엔드 개발  >  C# OOP 인터뷰 질문

C# OOP 인터뷰 질문

WBOY
WBOY원래의
2024-09-03 15:35:40697검색

C# OOP 면접 질문 소개

C#은 객체 지향, 기능적, 일반 및 구성 요소 지향 프로그래밍 언어입니다. 다양한 애플리케이션을 만드는 데 사용되었습니다. 특히 Windows 데스크톱 애플리케이션과 게임을 구축하는 데 강력합니다. 모바일 개발에서 점점 인기를 얻고 있는 C#을 사용하여 웹 개발을 효율적으로 수행할 수도 있습니다. 따라서 웹과 게임을 개발하려는 프로그래머에게는 탁월한 선택입니다. 정적으로 유형이 지정된 언어는 애플리케이션이 되기 전에 작성된 소스 코드를 철저히 확인합니다. 배우기에는 복잡한 언어이며, 이를 익히는 데는 상당한 시간이 걸릴 수 있습니다. 개발자는 다양한 크로스 플랫폼 도구를 사용하여 모바일 및 데스크톱 플랫폼에서 사용할 수 있는 C# 애플리케이션을 만들 수 있습니다.

C#OOP 관련 일자리를 찾고 있다면 2023 C#OOP 면접 질문을 준비해야 합니다. 인터뷰마다 다르고 업무 범위도 다르지만 최고의 C# OOP 인터뷰 질문과 답변을 통해 도움을 드릴 수 있으며, 이는 귀하가 인터뷰에서 도약하고 성공하는 데 도움이 될 것입니다.

1부 – C# OOP 면접 질문(기본)

첫 번째 부분에서는 필수 C# OOP 인터뷰 질문과 답변을 다룹니다

1. 인터페이스와 추상클래스의 차이점은 무엇인가요?

정답:

몇 가지 차이점은 다음과 같습니다.

  • 추상 클래스는 추상이 아닌 메서드(구체적 메서드)를 가질 수 있지만 인터페이스의 경우 모든 형식은 추상이어야 합니다.
  • 추상 클래스는 변수를 선언하거나 사용할 수 있지만 인터페이스는 그렇지 않습니다.
  • 추상 클래스에서는 모든 데이터 멤버나 함수가 기본적으로 비공개인 반면, 인터페이스에서는 모두 공개됩니다. 수동으로 변경할 수는 없습니다.
  • 추상 클래스는 생성자를 사용하지만 인터페이스에는 생성자가 없습니다.
  • 클래스는 여러 개의 인터페이스를 구현할 수 있지만 하위 클래스는 최대 하나의 추상 클래스만 사용할 수 있습니다.

2. 대리인과 그 용도는 무엇입니까?

정답:

대리자 개체는 메서드에 대한 참조를 보유하는 참조 유형 변수입니다. 연결은 런타임에 변경될 수 있으며 이는 대리자의 개체가 소유합니다. 위임 개체에는 시퀀스 FIFO의 작업을 참조하는 호출 목록이라고도 하는 많은 함수 참조가 있을 수 있습니다. += 연산자를 사용하여 런타임에 이 목록의 새 함수를 참조하고 -= 연산자를 사용하여 제거할 수 있습니다.

다음 C# OOP 인터뷰 질문으로 넘어가겠습니다.

3. 후기 바인딩과 초기 바인딩의 차이점은 무엇인가요?

정답:

컴파일 시간 다형성 또는 초기 바인딩에서는 이름은 같지만 매개 변수 유형이 다르거나 여러 매개 변수를 사용하는 여러 메서드를 사용합니다. 이로 인해 동일한 클래스에서 동일한 메소드 이름으로 서로 다른 작업을 수행할 수 있습니다. 이를 메소드 오버로딩이라고도 합니다.

public class TestData
{
public int Add(int a, int b, int c)
{
return a + b + c;
}
public int Add(int a, int b)
{
return a + b;
}
}
class Program
{
static void Main(string[] args)
{
TestData dataClass = new TestData();
int add2 = dataClass.Add(45, 34, 67);
int add1 = dataClass.Add(23, 34);
}
}

동적 또는 런타임 다형성의 또 다른 이름은 후기 바인딩입니다. 여기서는 메서드 이름과 메서드 시그니처(매개변수 수와 매개변수 유형이 동일해야 하며 구현이 다를 수 있음)입니다. 메서드 재정의는 동적 다형성의 예입니다.

public class Drawing
{
public virtual double Area()
{
return 0;
}
}
public class Square : Drawing
{
public double Length { get; set; }
public Square()
{
Length = 6;
}
public override double Area()
{
return Math.Pow(Length, 2);
}
}
public class Rectangle : Drawing
{
public double Height { get; set; }
public double Width { get; set; }
public Rectangle()
{
Height = 5.3;
Width = 3.4;
}
public override double Area()
{
return Height * Width;
}
}
class Program
{
static void Main(string[] args)
{
Drawing square = new Square();
Console.WriteLine("Area :" + square.Area());
Drawing rectangle = new Rectangle();
Console.WriteLine("Area :" + rectangle.Area());
}
}

4. 상속된 인터페이스에 충돌하는 메서드 이름이 있는 경우 어떻게 되나요?

정답:

다음은 일반적인 C# OOP 면접 질문 중 일부입니다. 동일한 클래스에 충돌하는 메서드가 포함되어 있다고 상상해 보세요. 이 경우 이름과 시그니처가 동일하기 때문에 동일한 클래스에서 Body를 독립적으로 구현할 수 없으므로 이러한 메소드 혼동을 없애기 위해 메소드 이름 앞에 인터페이스 이름을 사용해야 합니다.

interface testInterface1 {<br> void Show();<br> }<br> interface testInterface2 {<br> void Show();<br> }<br> class Abc: testInterface1,<br> testInterface2 {<br> void testInterface1.Show() {<br> Console.WriteLine("For testInterface1 !!");<br> }<br> void testInterface2.Show() {<br> Console.WriteLine("For testInterface2 !!");<br> }<br> }<br>

2부 – C# OOP 면접 질문(고급)

첫 번째 부분에서는 고급 C# OOP 인터뷰 질문과 답변을 다룹니다

6. 접근성 수정자는 무엇이며, C#에는 몇 개가 있나요?

정답:

액세스 한정자는 멤버 또는 유형의 선언된 접근성을 지정하는 데 사용되는 키워드입니다. C#에는 5가지 유형의 액세스 수정자가 있습니다.

공개 – 공개 회원 액세스에 제한이 없습니다.

비공개 – 클래스 정의 내에서 액세스가 제한됩니다. 아무것도 지정하지 않으면 이것이 기본값입니다.

보호됨 – 수업 정의 내와 강좌에서 상속받은 모든 수업으로 접근이 제한됩니다.

내부 - 현재 프로젝트에서 정의한 클래스로만 액세스가 제한됩니다.

7. What is a virtual method in C#?

Answer:

Developers use a virtual method to define a method that can be redefined in derived classes. We make a virtual method in the base class using the virtual keyword, and that method is overridden in the derived class using the override keyword.

Let us move on to the following C# OOP Interview Questions.

8. How to avoid NULL in C#?

Answer:

Null is not an object. We can have a class, but a variable with a NULL value is not pointing to any object. We might come across a piece of code that contains many conditional statements that check if the value of a variable is NULL. Let’s review a static method:

public static string DisplayUpperString( string s ){
string upper = string.Empty;
If( s == null ) {
upper = null;
}
else {
upper = s.ToUpper();
}
return upper;
}

This code is fine and converts to the upper case of a given string.
But from an OO perspective, consider constructing an object that represents nothing rather than evaluating it for NULL.

public static String DisplayUpperString ( PossibleString s ){
string upper = s.ToPossibleUpper();
return upper;
}

Now the function is less cluttered, more readable, and no longer uses the check for a NULL value.

9. What is the extension method in C#, and how to use them?

Answer:

Interviewers frequently ask about extension methods in C# OOP interviews. This method enables you to add methods to existing types without creating a new derived type, recompiling, or otherwise modifying the original type. Extension methods are only in scope when explicitly importing the namespace into your source code using a directive.

10. Can “this” keyword be used within a static method?

Answer:

Since “this” keyword returns a reference to the current instance of a class, we cannot use this inside a static method. And static members exist without any instance of the class and call with the name of the class, not by instance. The “this” keyword is implicitly defined in every constructor and non-static method as a particular kind of reference variable as the first argument of the class type in which it is defined.

위 내용은 C# OOP 인터뷰 질문의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.