首页 >后端开发 >C#.Net教程 >C# 面试题及答案

C# 面试题及答案

PHPz
PHPz原创
2024-09-03 15:35:37547浏览

它是类型安全的托管语言。许多操作系统都使用它,因此必须对这种语言有很强的理解。它的需求量很大,并且由于其多功能性,它可以支持许多操作系统。

您终于找到了您梦想的 C# 工作,但想知道如何破解 2023 年 C# 面试以及可能的 C# 面试问题是什么。每次面试都是不同的,工作范围也不同。考虑到这一点,我们设计了最常见的 C# 面试问题和答案,以帮助您在面试中取得成功。

第 1 部分 – C# 面试问题(基础)

第一部分涵盖基本的 C# 面试问题和答案。

Q1。什么是托管代码和非托管代码?

答案:

托管代码在 .Net 平台上执行。它对基于该平台的所有应用程序代码使用 CLR(公共语言运行时)。应用程序在执行时负责管理内存、安全性和性能等因素。这些是面试中可能会出现的关键 C# 面试问题。

Q2。 C# 中的类有哪些不同类型?简要解释每个课程。

答案:

C# 中有四种类型的类。它们如下:

1) 静态类:此类不允许继承。该类中的成员是静态的,并由关键字“static”标识。

2) 抽象类: 此类由关键字abstract 表示。这些类的对象无法实例化。该类只能被继承,并且必须至少包含一个方法。

3) 密封类: 此类无法继承。要访问,应创建此类的对象。它是使用关键字 Sealed 制作的。

4) Partial 类: 通过使用“partial”关键字,可以将一个类指定为“partial”,这允许其成员在多个 .cs 文件之间划分或共享。

让我们继续讨论以下 C# 面试问题。

Q3。什么是 C# I/O 类?

答案:

C# 使用 System.IO 命名空间,该命名空间由执行各种操作的类组成,如创建、删除、打开、关闭等。常用的 I/O 类有:

  • 文件: 帮助对文件执行多个操作。它有助于创建和操作文件。
  • StreamWriter: 用于将字符写入流。
  • StreamReader:用于从流中读取字符。
  • StringWriter: 用于将字符串写入缓冲区。
  • StringReader: 用于从 pad 读取一行。
  • 路径:当用户想要执行与课程相关的操作时使用。

第四季度。解释一下 StreamReader/ StreamWriter 类。

答案:

这两个类都属于命名空间 System.IO。 StreamReader 类包括以下成员:close()、read()、Readline()。 StreamWrier 类包括 close()、write()、writeline() 等成员。

class Program1
{
using(StreamReader sr = new StreamReader("C:\ReadMe.txt")
{
//----------------code to read-------------------//
}
using(StreamWriter sw = new StreamWriter("C:\ReadMe.txt"))
{
//-------------code to write-------------------//
}
}

Q5。解释一下装箱和拆箱的概念?

答案:

装箱是将值转换为引用类型。

示例:

int value -= 20;
//-----------Boxing------------//
Object boxValue= value;

此处 boxValue 引用“值”。
拆箱是显式从引用类型转换回值类型的过程。

示例:

//————UnBoxing——————//
int UnBoxing = int (boxedValue);

将引用拆箱恢复到原始值。

第 2 部分 – C# 面试问题(高级)

现在让我们来看看高级 C# 面试题。

Q6。什么是正则表达式?编写一个正则表达式来查找字符串,使用?

答案:

正则表达式模式到模板以匹配给定的输入集。这些模式可能包含运算符、字符文字、符号等。开发人员通常使用正则表达式 (regex) 来解析字符串或替换其中的特定字符。使用正则表达式,开发人员可以搜索给定输入文件或字符串中的任何模式,使其成为处理基于文本的数据的强大工具。
示例:

static void Main(string[] args)
{
string[] lang = { "C#", "Python", "Java" };
foreach(string s in lang)
{
if(System.Text.RegularExpressions.Regex.IsMatch(s,"Python"))
{
Console.WriteLine("Match found");
}
}
}

此代码示例利用 Python 在数组中搜索特定语言。此方法允许开发人员使用正则表达式来定位输入中的特定匹配项。

Q7。代表有哪些不同类型?

答案:

不同类型的代表是:

  • 单个委托: 当委托调用单个方法时,它是单个委托。
    • 多播委托: 当一个委托调用多个方法时,它就是一个多播委托。用户可以使用 + 和 – 运算符来订阅和取消订阅。
    • 通用委托: 通用委托分为三种类型。它们是动作、函数和谓词。

Q8。  C# 中的 lambda 表达式是什么?

答案: lambda 表达式是在 C# 中定义匿名方法的简洁方法。它通常用于 LINQ 查询以及定义委托或事件处理程序。 Lambda 表达式使代码更具可读性和表现力。

Q9。 C# 中的委托是什么?

答案: 委托是一种类型,表示对具有特定参数列表和返回类型的方法的引用。委托用于定义回调方法和实现事件处理,是 C# 事件和回调的基本组成部分。

问题10。解释一下C#中装箱和拆箱的概念。

答案: 装箱是将值类型转换为引用类型的过程,而拆箱是将装箱值转换回值类型的逆过程。装箱和拆箱会对性能产生影响,因此应谨慎使用它们。

以上是C# 面试题及答案的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn