Soalan Temuduga C# OOP

WBOY
Lepaskan: 2024-09-03 15:35:40
asal
716 orang telah melayarinya

Pengenalan kepada Soalan Temuduga C# OOP

C# ialah bahasa pengaturcaraan Berorientasikan Objek, berfungsi, generik dan berorientasikan komponen. Ia telah digunakan untuk mencipta pelbagai aplikasi; ia amat kukuh dalam membina aplikasi dan permainan desktop Windows. Pembangunan web juga boleh dilakukan dengan cekap dengan C#, yang semakin popular untuk pembangunan mudah alih. Jadi, ia adalah pilihan yang sangat baik untuk mana-mana pengaturcara yang ingin membangunkan web dan permainan. Bahasa yang ditaip secara statik menyemak dengan teliti kod sumber bertulis sebelum ia menjadi aplikasi. Ia adalah bahasa yang kompleks untuk dipelajari, dan menguasainya boleh mengambil masa yang agak lama. Pembangun boleh menggunakan pelbagai alatan merentas platform untuk mencipta aplikasi dalam C# yang boleh digunakan pada platform mudah alih dan desktop.

Jika anda sedang mencari pekerjaan yang berkaitan dengan C# OOP, anda mesti bersedia untuk Soalan Temuduga C# OOP 2023. Walaupun setiap temu duga berbeza dan skop kerja juga berbeza, kami boleh membantu anda dengan Soalan Temuduga C# OOP teratas dengan jawapan, yang akan membantu anda mengambil lompatan dan memberi anda kejayaan dalam temu duga anda.

Bahagian 1 – Soalan Temuduga C# OOP (Asas)

Bahagian pertama ini merangkumi Soalan dan Jawapan Temuduga C# OOP yang penting

1. Apakah perbezaan antara Antara Muka dan Kelas Abstrak?

Jawapan:

Beberapa perbezaan disenaraikan di bawah:

  • Kelas abstrak boleh mempunyai kaedah bukan abstrak (kaedah konkrit), manakala dalam kes antara muka, semua borang mestilah abstrak.
  • Kelas abstrak boleh mengisytiharkan atau menggunakan pembolehubah, manakala antara muka tidak boleh.
  • Dalam kelas abstrak, semua ahli data atau fungsi adalah peribadi secara lalai, manakala dalam antara muka, semuanya awam; kami tidak boleh menukarnya secara manual.
  • Kelas abstrak menggunakan pembina, manakala kami tidak mempunyai sebarang pembina dalam antara muka.
  • Sebuah kelas boleh melaksanakan sebarang bilangan antara muka, tetapi subkelas boleh, paling banyak, menggunakan hanya satu kelas abstrak.

2. Apakah perwakilan dan kegunaannya?

Jawapan:

Objek perwakilan ialah pembolehubah jenis rujukan yang memegang rujukan kepada kaedah. Sambungan boleh ditukar semasa runtime, yang dimiliki oleh objek perwakilan. Objek perwakilan boleh mempunyai banyak rujukan fungsi, juga dikenali sebagai Senarai Invocation, yang merujuk kepada tugas dalam urutan FIFO; kita boleh merujuk fungsi baharu dalam senarai ini pada masa jalan oleh operator += dan alih keluar oleh operator -=.

Mari kita beralih kepada Soalan Temuduga C# OOP berikut.

3. Apakah perbezaan antara pengikatan lewat dan pengikatan awal?

Jawapan:

Dalam Compile time polymorphism atau Early Binding, kami akan menggunakan berbilang kaedah dengan nama yang sama tetapi jenis parameter yang berbeza atau beberapa parameter. Oleh sebab itu, kami boleh melaksanakan tugasan yang berbeza-beza dengan nama kaedah yang sama dalam kelas yang sama, juga dikenali sebagai Kaedah terlebih muatan.

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);
}
}
Salin selepas log masuk

Nama lain untuk polimorfisme dinamik atau masa jalan adalah pengikatan lewat.. Di sini, nama kaedah dan tandatangan kaedah (bilangan parameter dan jenis parameter mestilah sama dan mungkin mempunyai pelaksanaan yang berbeza). Penggantian kaedah ialah contoh polimorfisme dinamik.

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());
}
}
Salin selepas log masuk

4. Apakah yang akan berlaku sekiranya antara muka yang diwarisi mempunyai nama kaedah yang bercanggah?

Jawapan:

Ini adalah beberapa soalan temuduga C# OOP biasa. Bayangkan bahawa kelas yang sama mengandungi kaedah yang bercanggah. Dalam kes itu, kami tidak boleh melaksanakan badan mereka secara bebas dalam kelas yang sama kerana nama yang sama dan tandatangan yang sama, jadi kami mesti menggunakan nama antara muka sebelum nama kaedah untuk mengalih keluar kekeliruan kaedah ini.

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>

Bahagian 2 – Soalan Temuduga C# OOP (Lanjutan)

Bahagian pertama ini merangkumi Soalan dan jawapan Temuduga C# OOP lanjutan

6. Apakah itu pengubah kebolehaksesan, dan berapa banyak yang terdapat dalam C#?

Jawapan:

Pengubah suai akses ialah kata kunci yang digunakan untuk menentukan kebolehcapaian yang diisytiharkan bagi ahli atau jenis. Dalam C#, terdapat 5 beberapa jenis Access Modifiers.

Awam – Tiada sekatan untuk mengakses ahli awam.

Persendirian – akses terhad dalam definisi kelas; jika tiada yang dinyatakan, maka ini adalah lalai.

Dilindungi – akses terhad kepada dalam definisi kelas dan mana-mana kelas yang mewarisi kursus.

Dalaman – akses terhad secara eksklusif kepada kelas yang ditentukan oleh projek semasa.

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;
}
Salin selepas log masuk

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;
}
Salin selepas log masuk

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.

Atas ialah kandungan terperinci Soalan Temuduga C# OOP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan