超硬核!苏州同程旅游学长给我的全面的面试知识库

  • 1、简介
    • 新生和经验丰富的C#面试常见问题解答
    • 2、什么是C#?
    • 3、用示例说明C#中的注释类型
    • 4、可以执行多个catch块吗?
    • 5、 public,static和void之间有什么区别?
    • 6、什么是物体?
    • 7、定义构造函数
    • 8、什么是锯齿状阵列?
    • 9、ref&out参数之间有什么区别?
    • 10、C#中“ using”语句的用途是什么?
    • 11、什么是序列化?
    • 12、我们可以在静态方法中使用“ this”命令吗?
    • 13、常量和只读之间有什么区别?
    • 14、什么是接口类?举一个例子
    • 15、什么是值类型和引用类型?
    • 16、什么是自定义控件和用户控件?
    • 17、 C#中的密封类是什么?
    • 18、什么是方法重载?
    • 19、 Array和Arraylist有什么区别?
    • 20、可以重写私有虚拟方法吗?
    • 21、描述可访问性修饰符“受保护的内部”。
    • 22、System.String和System.Text.StringBuilder类之间有什么区别?
    • 23、System.Array.CopyTo()和System.Array.Clone()有什么区别?
    • 24、我们如何才能按降序对Array的元素进行排序?
    • 25、写下C#语法以捕获异常
    • 26、接口和抽象类有什么区别?
    • 27、 Finalize()和Dispose()方法有什么区别?
    • 28、什么是循环引用?
    • 29、 C#.NET中的泛型是什么?
    • 30、什么是.NET中的对象池?
    • 31、列出.net中常用的异常类型
    • 32、什么是自定义例外?
    • 33、什么是代表?
    • 34、如何在C#中将一个类继承到其他类?
    • 35、.net中的基类是什么,所有类都源自该基类?
    • 36、方法重载和方法重载之间有什么区别?
    • 37、重载方法有哪些不同的方式?
    • 38、为什么不能为接口内的方法指定可访问性修饰符?
    • 39、我们如何设置要继承的类,但又要防止该方法被重写?
    • 40、如果继承的接口具有冲突的方法名称,该怎么办?
    • 关注苏州程序大白,持续更新技术分享。谢谢大家支持

1、简介

C#是一种通用编程语言,涵盖了诸如面向对象编程,静态类型化,面向组件的编程,强类型化等各种学科。C#在ASP.NET框架中广泛用于创建网站,Web应用程序和游戏。世界各地的C#编程都有巨大的机会。如果您想在C#编程中谋求一份职业,则需要进行一次面试,在其中会向您询问以下几个C#基本面试问题和解答。
这是C#面试问题和答案的精选列表,在面试过程中可能会提出这些问题。根据他们的经验和其他各种因素,可能会向候选人询问基本的C#面试问题,以提高C#.NET面试的水平。此列表涵盖了所有针对新生的C#问题以及针对经验丰富的应聘者的C#面试问题和答案。

新生和经验丰富的C#面试常见问题解答

以下是一些针对新手和有经验的C#开发人员候选人的常见访谈问题,以找到合适的工作。
我们已经介绍了50多种基本知识,以推进常见的C#面试问题和答案

2、什么是C#?

C#是一种面向对象的,类型安全的托管语言,由.Net框架编译以生成Microsoft中间语言。

3、用示例说明C#中的注释类型

单线
例子:

//This is a single line comment
Ii.多行(/ * * /)

例子:

/*This is a multiple line comment
We are in line 2
Last line of comment*/
Iii.XML注释(///)。

例如:

/// summary;
/// Set error message for multilingual language.
/// summary

4、可以执行多个catch块吗?

不,不能执行多个类似类型的捕获块。一旦执行了正确的捕获代码,控制就会转移到finally块,然后执行finally块之后的代码。

5、 public,static和void之间有什么区别?

公开声明的变量或方法可在应用程序中的任何位置访问。静态声明的变量或方法可以全局访问,而无需创建类的实例。默认情况下,静态成员不可全局访问,这取决于所使用的修改的访问类型。编译器将方法的地址存储为入口点,并使用此信息在创建任何对象之前开始执行。Void是类型修饰符,它声明方法或变量不返回任何值。

6、什么是物体?


一个对象是一个类的实例,通过它我们可以访问该类的方法。“新建”关键字用于创建对象。在内存中创建对象的类将包含有关该类的方法,变量和行为的信息。

7、定义构造函数

构造函数是与该类具有相同名称的类中的成员函数。每当创建对象类时,都会自动调用构造函数。它在初始化类时构造数据成员的值。

8、什么是锯齿状阵列?

具有数组类型元素的数组称为锯齿数组。元素可以具有不同的尺寸和大小。我们也可以将锯齿状数组称为数组数组。

9、ref&out参数之间有什么区别?

作为ref传递的参数必须在传递给方法之前进行初始化,而out参数在传递给方法之前无需进行初始化。

10、C#中“ using”语句的用途是什么?

“使用”块用于获取资源并对其进行处理,然后在执行完该块后自动将其丢弃。

11、什么是序列化?

当我们想通过网络传输对象时,我们必须将对象转换为字节流。将对象转换为字节流的过程称为序列化。为了使对象可序列化,它应该实现ISerialize接口。反序列化是从字节流中创建对象的反向过程。

12、我们可以在静态方法中使用“ this”命令吗?

我们不能在静态方法中使用’This’,因为我们只能在静态方法中使用静态变量/方法。

13、常量和只读之间有什么区别?

常量变量在编译时声明和初始化。此后无法更改该值。只读仅在我们要在运行时分配值时使用。

14、什么是接口类?举一个例子

接口是仅具有公共抽象方法的抽象类,并且这些方法仅具有声明而不具有定义。这些抽象方法必须在继承的类中实现。例如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{interface Guru99Interface{void SetTutorial(int pID, string pName);String GetTutorial();}class Guru99Tutorial : Guru99Interface{protected int TutorialID;protected string TutorialName;public void SetTutorial(int pID, string pName){TutorialID = pID;TutorialName = pName;}public String GetTutorial(){return TutorialName;}static void Main(string[] args){Guru99Tutorial pTutor = new Guru99Tutorial();pTutor.SetTutorial(1,".Net by Guru99");Console.WriteLine(pTutor.GetTutorial());Console.ReadKey();}}
}

15、什么是值类型和引用类型?

值类型将数据值保存在其自己的存储空间内。例子

Int = 30;

引用类型存储要在其中存储值的对象的地址。它是指向另一个存储位置的指针。

String b =“ Hello Guru99 !!”;

16、什么是自定义控件和用户控件?

自定义控件是作为编译代码(Dll)生成的控件,它们更易于使用,可以添加到工具箱中。开发人员可以将控件拖放到他们的Web表单中。在设计时属性即可。我们可以轻松地将自定义控件添加到多个应用程序(如果共享的Dll)。因此,如果它们是私有的,那么我们可以将其复制到dll到Web应用程序的bin目录中,然后添加引用并可以使用它们。
用户控件与ASP包含文件非常相似,并且易于创建。用户控件不能放置在工具箱中并从中拖放。他们有自己的设计和代码背后。用户控件的文件扩展名为ascx。

17、 C#中的密封类是什么?

当我们想限制继承的类时,我们创建密封的类。密封的修饰符,用于防止从类派生。如果我们强制将密封类指定为基类,则会发生编译时错误。

18、什么是方法重载?

方法重载是在同一个类中创建多个具有相同名称且具有唯一签名的方法。编译时,编译器使用重载解析来确定要调用的特定方法。

19、 Array和Arraylist有什么区别?

在数组中,我们只能具有相同类型的项目。比较时,数组的大小是固定的。数组列表类似于数组,但是没有固定的大小。

20、可以重写私有虚拟方法吗?

不可以,因为在课外无法访问它们。

21、描述可访问性修饰符“受保护的内部”。

受保护的内部变量/方法可在同一程序集中以及从该父类派生的类中访问。

22、System.String和System.Text.StringBuilder类之间有什么区别?

System.String是不可变的。当我们修改字符串变量的值时,会将新的内存分配给新值,并释放先前的内存分配。System.StringBuilder设计为具有可变字符串的概念,在其中可以执行各种操作,而无需为修改后的字符串分配单独的内存位置。

23、System.Array.CopyTo()和System.Array.Clone()有什么区别?

使用Clone()方法,我们使用CopyTo()方法创建一个包含原始Array中所有元素的新数组对象。现有阵列的所有元素都将复制到另一个现有阵列中。两种方法都执行浅表复制。

24、我们如何才能按降序对Array的元素进行排序?

使用Sort()方法,然后使用Reverse()方法。

25、写下C#语法以捕获异常

为了捕获异常,我们使用try-catch块。捕获块可以具有system.Exception类型的参数。
例如:

try {GetAllData();
}
catch (Exception ex) {}

在上面的示例中,我们可以从catch语句中省略参数。

26、接口和抽象类有什么区别?

接口具有所有仅具有声明但没有定义的方法。在抽象类中,我们可以有一些具体方法。在接口类中,所有方法都是公共的。抽象类可以具有私有方法。

27、 Finalize()和Dispose()方法有什么区别?

当我们希望对象与它们一起释放任何非托管资源时,将调用Dispose()。另一方面,Finalize()用于相同的目的,但不能保证对象的垃圾回收。

28、什么是循环引用?

循环引用是指两个或多个资源相互依赖导致锁定条件并使资源无法使用的情况。

29、 C#.NET中的泛型是什么?

泛型用于制作可重用的代码类,以减少代码冗余,提高类型安全性和性能。使用泛型,我们可以创建集合类。若要创建通用集合,应使用System.Collections.Generic命名空间代替System.Collections命名空间中的诸如ArrayList之类的类。泛型提倡使用参数化类型。

30、什么是.NET中的对象池?

对象池是具有准备使用的对象的容器。它跟踪当前正在使用的对象,池中的对象总数。这减少了创建和重新创建对象的开销。

31、列出.net中常用的异常类型

ArgumentException,ArgumentNullException,ArgumentOutOfRangeException,ArithmeticException,
DivideByZeroException,OverflowException,IndexOutOfRangeException,InvalidCastException,
InvalidOperationException,IOEndOfStreamException,NullReferenceException,OutOfMemoryException,
StackOverflowException等。

32、什么是自定义例外?

有时,根据用户要求需要处理一些错误。自定义异常用于它们,并用于定义的异常。

33、什么是代表?

委托与C ++中的函数指针相同,但是唯一的区别是它们与类型指针不同,它们是类型安全的。委托是必需的,因为它们可用于编写更多通用的类型安全函数。

34、如何在C#中将一个类继承到其他类?

冒号在C#中用作继承运算符。只需放置一个冒号,然后放置类名。
公共类DerivedClass:BaseClass

35、.net中的基类是什么,所有类都源自该基类?

System.Object

36、方法重载和方法重载之间有什么区别?

在方法重写中,我们在派生类中更改了方法定义,从而改变了方法的行为。方法重载是在同一个类中创建具有不同签名的同名方法。

37、重载方法有哪些不同的方式?

可以使用参数的不同数据类型,参数的不同顺序和参数的数量来重载方法。

38、为什么不能为接口内的方法指定可访问性修饰符?

在接口中,我们有没有方法定义的虚拟方法。所有方法都将在派生类中被覆盖。这就是为什么它们都公开的原因。

39、我们如何设置要继承的类,但又要防止该方法被重写?

将该类声明为公共类,并密封该方法以防止其被覆盖。

40、如果继承的接口具有冲突的方法名称,该怎么办?

工具取决于您自己,因为方法位于您自己的类中。当来自不同接口的方法期望不同的数据时可能会出现问题,但就编译器而言,您可以。

关注苏州程序大白,持续更新技术分享。谢谢大家支持

超硬核!苏州同程旅游学长给我的全面的面试知识库相关推荐

  1. 超硬核!兔兔阿里p7学长给的面试知识库

    一个阿里p7学长给的nosql面试知识库,绝对真实,学会了去面呀. 最近整理了一下超硬核系列的文章和面经系列的文章,可以持续关注下: 超硬核系列历史文章:(我保证每篇文章都有值得学习的地方,并且对小白 ...

  2. mysql long类型_怒肝两个月MySQL源码,我总结出这篇2W字的MySQL协议详解(超硬核干货)!!...

    点击上方蓝色"冰河技术",关注并选择"设为星标" 持之以恒,贵在坚持,每天进步一点点! 作者个人研发的在高并发场景下,提供的简单.稳定.可扩展的延迟消息队列框架 ...

  3. 超硬核之傅里叶公式推导(上)

    超硬核之傅里叶公式推导 1.三角函数系与正交性 2.周期(2pi)函数的傅里叶展开(三角形式) 3.找到周期函数傅里叶展开的系数 结语 前言:再学习数学推导之前,popcorn建议读者感性的先去理解一 ...

  4. 十一长假我肝了这本超硬核PDF,现决定开源!!

    写在前面 在 [冰河技术] 微信公众号中的[互联网工程]专题,更新了不少文章,有些读者反馈说,在公众号中刷 历史文章不太方便,有时会忘记自己看到哪一篇了,当打开一篇文章时,似乎之前已经看过了,但就是不 ...

  5. 【Nginx】冰河又一本超硬核Nginx PDF教程免费开源!!

    写在前面 在 [冰河技术] 微信公众号中的[Nginx]专题,更新了不少文章,有些读者反馈说,在公众号中刷 历史文章不太方便,有时会忘记自己看到哪一篇了,当打开一篇文章时,似乎之前已经看过了, 但就是 ...

  6. 【JAVA面试】苏州同程旅游面试总结

    苏州同程旅游面试总结 一.简言 苏州同程旅游可以说是苏州这边比较好的互联网公司了,而且总部也就在苏州.作为一名双非本科生,本来也没有什么太大的梦想,BAT愣是不敢投,最后怀着憧憬的心情投了苏州同程ja ...

  7. 超硬核!花33小时来造台3D打印机吧~

    超硬核!花33小时来造台3D打印机 3D打印机在实际应用中还是有不少用武之地的,从零开始直接买材料回来自己组装可以有效地提高性价比,用最低的价钱打造一台性价比不错的机子.这里我就用大概两天的时间,成本 ...

  8. 超硬核!!!一篇文章搞定TCP、UDP、Socket、HTTP(详细网络编程内容+现实解释三次握手四次挥手+代码示例)【网络编程 1】

    TCP.UDP.Socket 一天面试的经验: 什么是网络编程 网络编程中两个主要的问题 网络协议是什么 为什么要对网络协议分层 计算机网络体系结构 1 TCP / UDP 1.1 什么是TCP/IP ...

  9. 超硬核全套Java视频教程(学习路线+免费视频+配套资料)

    文内福利,扫码免费领取 Hello,各位锋迷们,我是小千.很多学习Java的小伙伴都在找的全套免费java视频教程,这里全都有,资料齐全,拿来吧你! 零基础学Java的学习路线图是怎样的?! 曾经写过 ...

最新文章

  1. 快手刘霁:AI基础能力决定每个公司AI的迭代和落地效率丨MEET2020
  2. Doctype? 严格模式与混杂模式-如何触发这两种模式,区分它们有何意义?
  3. 面试?莫慌--- 教你如何“秀技”摩擦面试官
  4. 取出数组最大值与最小值
  5. vue组件的基本使用:入门示例
  6. python 运算及注释
  7. 读取文件中的文本并返回字符串
  8. 使用NBAR更有效的识别与封堵网络应用
  9. 怎么把一个Java应用打包成Docker镜像
  10. php位运算符与逻辑运算_php 或_php 逻辑运算符和
  11. 40余位重磅嘉宾,320分钟巅峰对话,这8场主题圆桌藏着哪些时代密码?丨第二届算力大会...
  12. 我的spark学习之路(一)
  13. 东大计算机硕士奖学金,计算机科学与技术学院2018级硕士研究生学业奖学金评定情况.PDF...
  14. vision安装过程中出错_NVIDIA安装程序失败 3D vision 驱动程序 失败 是为什么,如图所示...
  15. 小技巧给网页减肥 让网站访问提速
  16. APP开发究竟需要多少钱?
  17. 前沿 | 抗击黑产 阿里安全八大实验室首秀技术实力
  18. php中的implode,php里implode是什么意思
  19. java数组初始化 new_java 数组初始化
  20. 一种用于NDN的安全的链路状态路由协议

热门文章

  1. Python多线程之守护进程
  2. js实现ios头部导航条模糊效果
  3. java五子棋联网对战,毕业设计-- 用JAVA实现五子棋网络对战系统
  4. Java并发编程实战读书笔记
  5. 离散小波变换的FPGA/Verilog实现
  6. ansys em 19 reg_ansysedt.exe错误3221227010 reg_siwave.exe错误:3221227010
  7. 计算机图形学实验源码_计算机图形自动可微:MIT学神微分太极框架开源,论文被ICLR接收...
  8. python 创建虚拟环境时报错OSError, setuptools下载失败
  9. 从MWC2019看5G应用落地 技术赋能“千行百业”
  10. ActiveX控件打包成Cab置于网页中自动下载安装(转载)