1. 什么是C#?

C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。
C#是一种安全的、稳定的、简单的、优雅的,由C和C++衍生出来的面向对象的编程语言。

2. C#的有哪些注释类型?

C#中有三种注释类型。
单行(//)
多行(/* */)
Page/XML 注释(///)。

3. C#.NET中使用的命名空间有哪些?

命名空间是类型的逻辑分组。
using System;
using System.Collections.Generic;
using System.Windows.Forms;

4. C#有哪些特点?

C#有以下特点:

简单
类型安全
灵活
面向对象
兼容
持久化
互操作性
有别于传统

5. 继承有哪些不同的类别?

在面向对象编程中继承的四种类型:

单继承:包括一个基类和一个派生类。

多层继承(Hierarchical inheritance) :包括一个基类和继承自同一个基类的派生类。

多级继承(Multilevel inheritance):包括从一个派生类派生出来的类。

多重继承(Multiple inheritance):包括多个基类和一个派生类。

6. 面向对象编程的基本概念是什么?

有必要理解一些在面向对象编程中广泛使用的概念。它们包括:

对象

数据抽象和封装
继承
多态性
动态绑定
信息传递。

7. 你可以继承多个接口吗?

可以的。在C#中可能继承多个接口。

8. 什么是继承?

继承是从一个已经存在的类中派生出来的新类。

9. Define scope?定义作用域?

作用域指的是代码中一个变量可以被访问的区域。

10. public、static和void之间的区别是什么?

public:关键字public是访问修饰符,用来告诉C#编译器主(Main)方法可以被任何人调用。

static:关键字static表明主(Main)方法是一个全局方法,不需要穿件类实例即可访问。编译器储存该方法的地址作为切入点,并利用这个信息在任何对象创建之前开始执行它。

void:关键字void是一个类型修饰符表明主(Main)方法不返回任何值。

11. C#中的修饰符有哪些?

Abstract
Sealed
Virtual
Const
Event
Extern
Override
Readonly
Static
New

12. C#中访问修饰符的种类有哪些?

C#中的访问修饰符是:

public
protect
private
internal
internal protect

13. 什么是装箱和拆箱?

变量值类型隐式转换为引用类型成为装箱,例如integer到object的类型转换。

引用类型变量转换回值类型成为拆箱。

14. 对象是什么?

对象是类的实例。对象的创建使用new操作。一个类在内存中创建一个对象,将包含特定对象的值和行为(或者方法)的信息。

15. C#中有哪些类型的数组?

一维数组(Single-Dimensional)
多维数组(Multidimensional)
交错数组(Jagged arrays)。

16. 对象和实例之间的区别是什么?

用户定义的类型的实例称为一个对象。我们可以从一个类实例化很多对象。

对象是类的实例。

17. Define destructors?定义析构函数?

当类对象超出作用域或者被明确删除的时候,析构函数被调用。析构函数,顾名思义是用来销毁由构造函数创建的对象的。正如构造函数,析构函数是一个类成员方法,方法名和类名相同,只是由波浪号开头。

18. 枚举数据类型怎么用?

枚举类型是另一种用户定义类型,它提供了一种连接名字为数字的方式,从而提高了代码的可理解性。enum关键字自动地枚举一组词,赋予它们的值为0,1,2并以此类推。

19. 定义构造函数?

构造函数是和它的类同名的成员方法。每当创建其关联的类的对象时构造函数都会被调用。它之所以被称为构造函数是因为它构造了类的数据成员的值。

20. 什么是封装?

包装数据和功能成为一个单元(称为类)就被称为封装。封装包含并且隐藏对象信息,例如内部数据结构和代码。

21. C#支持多重继承吗?

不支持,它不可能。支持多级继承。

22. 什么是ENUM?

Enum用于定义常量。

23. 数据集是什么?

数据集(DataSet)是从任何数据源载入数据的内存表示。

24. private和public关键字的区别是什么?

Private:关键字private是默认访问级别,并且在所有其他访问级别中是最严格的。它给予一个类型或者类型成员最小的权限。私有成员仅仅在声明其的类体中可以被访问。

Public:关键字public是所有访问级别中最自由地,没有任何访问限制。公共成员的访问不仅可以来自外部,也可以来自内部,并且可以自由访问定义在类体内或者体外的任何成员。

25. 定义多态性?

多态性意味着一个名字,多种形式。它使我们在一个程序中可以定义一个以上相同名字的方法。它让我们重载操作以便这样的操作可以对不同的实例表现不同的行为。

26. 什么是交错数组?

交错数组是元素为数组的数组。

交错数组元素的维度和大小可以不同。

交错数组有时称为“数组的数组”。

27. 什么是抽象基类?

抽象类是被设计为专门用于作为基类的类。抽象类至少还有一个纯虚方法。

28. 方法重写和方法重载有什么区别?

当重写一个方法时,你改变了派生类中方法的行为。重载方法只涉及在类中另一个同名的方法。

29. ref和out参数之间的区别是什么?

传递给ref参数的参数必须先初始化。与此相比,对out参数来说,在参数传递给out参数之前不需要显示初始化。

30. C#中using语句怎么用?

using语句通常是获取资源,执行语句,然后释放该资源。

31. 什么是序列化?

序列化(Serialization)是将对象转换为字节流的过程。

反序列化(De-serialization)是从字节流创建对象这样相反的过程。

序列化/反序列化常用于传递对象。

32. 结构和类之间有什么区别?

结构是值类型,类是引用类型。

结构不能有构造函数和析构函数。

类可以同时有构造函数和析构函数。

结构不支持继承,而类支持继承。

33. 类和接口之间有什么区别?

类(Class)是对象的逻辑表示。它是数据集合和相关子过程的定义。

接口(Interface)也是一个类,包含没有任何方法体定义的方法。类不支持多重继承,但是接口支持。

34. 什么是委托?

委托是类型安全,面向对象的函数指针的实现,并且在许多一个组件需要回调到使用它的组件这样的情况下使用。

35. 什么是认证与授权?

认证是识别用户的过程。认证是以证书(用户名和密码)来识别/验证用户。

授权在认证之后执行。授权是一个基于这些用户身份授予访问权限的过程。

授权允许用户对特定资源的访问。

36. 什么是基类?

类声明可以通过类名加一个冒号和基类名来指定基类。省略基类说明等同于从object类派生。

37. “this”可以在静态方法中用吗?

不,‘This’不能在静态方法中使用。仅仅只有静态变量/方法可以在静态方法中使用。

38. constants、readonly和static之间的区别是什么?

Constants: 值不能变。

Read-only: 值在类的构造函数中仅仅初始化一次。

Static: 值可以被初始化一次。

39. C#中支持哪些语句类型?

C#支持的几种不同的语句类型是

块语句
声明语句
表达式语句
选择语句
迭代语句
跳转语句
异常处理语句
检查和未检查
Lock语句

40. 什么是接口类?

它是一个抽象类,所有公共抽象方法必须要在其继承类中实现。

41. 什么是值类型和引用类型?

值类型存储在堆栈中。
例如: bool, byte, chat, decimal, double, enum, float, int, long, sbyte, short, strut, uint, ulong, ushort。

引用类型存储在托管堆中。
例如: class, delegate, interface, object, string。

42. 关键字string和System.String类之间有什么区别?

关键字string是System.String类的别名。所以,System.String和关键字string是一样的,你可以使用任何你喜欢的命名约定。String类提供了许多方法用于安全创建,操作和比较字符串。

43. C#中提供的两种数据类型是什么?

值类型
引用类型

44. 有哪些缓存的种类?

有三种类型的缓存:

输出缓存(Output Caching):存储asp.net页面的应答信息。

片段缓存(Fragment Caching):仅缓存/存储部分页面内容(用户控制)。

数据缓存(Data Caching):为了性能通过编程的方式来缓存对象。

45. 自定义控件和用户控件之间的区别是什么?

自定义控件是编译后的代码(Dlls),容易使用,创建困难,可以放在工具箱。拖拉使用的控件。

属性可以直观地在设计时指定。可以被多个应用程序使用(如果共享Dlls),即使是私有的也能拷贝到web应用程序的bin目录,添加引用和使用。通常是用来为独立的消费应用程序提供公用功能。

用户控件和ASP的include文件,轻松创建,不能放置在箱中来拖拉放置它。用户控件在单个应用程序文件之间共享。

46. 什么是方法?

方法是由对象或者类执行来实现计算或者操作的成员。静态方法通过类访问。实例方法通过类的实例来访问。

47. 什么是域?

域是类或者类的实例相关的变量。

48. 什么是事件?

事件是使一个类或对象能够提供通知的成员。事件声明像域声明一样,除了声明包含event关键字并且类型必须为委托类型。

49.什么是文本和它们的类型?

文本是程序分配给变量的值常量。C#支持的几种文本类型是

整数(Integer literals)
实数(Real literals)
布尔值(Boolean literals)
单字符(Single character literals)
字符串(String literals)
反斜线(Backslash character literals)

50. 值类型和引用类型的区别是什么?

值类型存储在堆栈上,是一个变量的值赋值给另一个变量。

引用类型存储在托管堆上,是两个引用变量之间的发生赋值。

51. C#有什么特性?

C#是一个简单而强大的编程语言,用于编写企业版的应用程序。
它是C++和VB的混合体。它保留了许多C++特性,如语句,表达式和运算符并结合了VB的生产力。

C#帮助开发者轻易地构建网络服务,能够通过任何语言,任何平台来访问Internet。

C#帮助开发者用更少的代码完成开发,从而在代码中错误更少。

C#引入了相当大的改进和创新,如类型安全,版本控制,事件和垃圾收集这些领域。

52. 错误的类型是什么?

语法错误(Syntax error)
逻辑错误(Logic error)
运行时错误(Runtime error)

53. break和continue语句之间有什么区别?

break语句是用来终止当前封闭循环或者它所在的条件语句的。我们已经使用break语句跳出switch语句。

continue语句是用来改变执行顺序的。和break语句那样跳出循环相反,continue语句停止当前迭代并且只将控制返回到循环顶部。

54. 定义命名空间?

命名空间被称为容器,用来组织分层的.NET类。

55. 什么是代码组?

代码组是一组共享安全上下文的套件。

56. C#中什么是密封类?

sealed修饰符用来阻止从一个类派生。如果一个密封类被指定为另一个类的基类时会发生编译时错误。

57. 静态方法和实例方法的区别是什么?

以static修饰符声明的方法是静态方法。静态方法不操作具体的实例,并且只能被静态成员访问。

没有以static修饰符声明的方法是实例方法。实例方法操作一个具体的实例并且可以被静态和实例成员访问。在其上调用实例方法的实例可以像这样显示访问。在静态方法中这么调用是错误的。

58. C#中有哪些变量的类型?

C#中不同的变量类型是:

静态变量(static variables)
实例变量(instance variable)
值参数(value parameters)
引用参数(reference parameters)
数组元素(array elements)
输出参数(output parameters)
局部变量(local variables)

59. 方法重载是什么意思?

方法重载允许在同一个类中的多个方法有相同的名字,只要它们具有独特的签名。当编译一个重载方法的调用时,编译器使用重载决策决定具体调用的方法。

60. 什么是参数?

参数是用来传递值或者变量引用给方法的。方法的参数从被调用方法时指定的参数得到它们实际的值。有四种参数:值参数,引用参数,输出参数和参数数组。

61. C#是面向对象的语言吗?

是的,C#和传统的Java及C++一样是面向对象的语言。

62. Array和Arraylist之间的区别是什么?

数组是相同类型的集合。数组大小在它声明的时候就固定了。链表和数组相似,但它没有固定的大小。

63. C#中有什么特殊的运算符?

C#支持一下特殊运算符。

is (关系运算符)
as (关系运算符)
typeof (类型运算符)
sizeof (大小运算符,用于获取非托管类的大小)
new (对象运算符)
.dot (成员访问运算符)
checked (溢出检查)
unchecked?(防止溢出检查)

64. C#中运算符的含义是什么?

运算符是界定了对类实例应用特定的运算表达式内涵的成员。可以定义三种类型的运算符:一元运算符,二元运算符和转换运算符。所有的运算符必须声明为public和static的。

65. 什么是类型参数化?

类型参数化是一个类型在另一个值或者类型之上参数化。

C# 面试题 (二)的更多相关文章

  1. 数据库基础SQL知识面试题二

    数据库基础SQL知识面试题二 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.选课系统SQL语法练习 course数据库中有以下四张表: •students表(学生表): si ...

  2. C/C++常考面试题(二)

    网上看到的面经,说是dynamic_cast的实现,和RTTI的相关,这才发现原来对这个概念这么模糊,所以作了这个总结. C/C++常考面试题(二) RTTI(Runtime Type Informa ...

  3. php面试题二--解决网站大流量高并发方案(从url到硬盘来解决高并发方案总结)

    php面试题二--解决网站大流量高并发方案(从url到硬盘来解决高并发方案总结) 一.总结 从外到内解决网站大流量高并发问题---从提交一个url开始(从用户按下搜索栏回车键开始) url最开始会到d ...

  4. php开发面试题---2、php常用面试题二(表单提交方式中的get和post有什么区别)

    php开发面试题---2.php常用面试题二(表单提交方式中的get和post有什么区别) 一.总结 一句话总结: 数据位置:get参数在url里面,post在主体里面 数据大小:get几kb,pos ...

  5. C++经典面试题(二)

    近期看一些面试题,认为假设自己被问到了,并不能非常利落的回答出来. 一是从来没有这个意识,二是没有认真的梳理下. 以下对这些题做出分析,哈!个人能力有限,当中难免有疏漏,欢迎大家补充咯. 11.引用与 ...

  6. JAVA面试题二

    JAVA 综合面试题 2007-08-12 目录 Java面试题整理 9 Java面向对象 9 1. super()与this()的区别? 9 2. 作用域public,protected,priva ...

  7. Java面试题(二)

    系统整理了一下有关Java的面试题,包括基础篇,javaweb篇,框架篇,数据库篇,多线程篇,并发篇,算法篇等等,陆续更新中.其他方面如前端后端等等的面试题也在整理中,都会有的. 注:文末有福利! 1 ...

  8. Java常考面试题(二)

    序言 昨天刚开始的”每日5题面试“这类文章,感觉还不错,把一些平常看似懂了的东西,弄清楚了.就像什么是虚拟机?这个问题,看起来知道,但是要说出个所以然来,又懵逼了,经常回过头来看看做过的面试题,试着用 ...

  9. C# 面试题 二

    1.进程和线程的区别 进程是系统进行资源分配和调度的单位:线程是CPU调度和分派的单位,一个进程可以有多个线程,这些线程共享这个进程的资源. 2.成员变量和成员函数前加static的作用 它们被称为常 ...

  10. python面试题(二)

    最近参加了几场招聘,发现好多人的一些基础知识不是很扎实,做的题很多都是错误的,因此找了一些我们公司面试过程中的一些最基本的面试题供大家参考,希望各位都能找到一个好的工作.今天给大家先分享的是关于Pyt ...

随机推荐

  1. Win7系统托盘解决出现CH图标的方法

    中文环境下,使用的英文键盘应该是“中文(简体)-美式键盘",这个输入法虽然是用来打英文的,但是归到中文类的,对应就是CH 如果因为某些不知明原因,增加了"美式键盘"等其他 ...

  2. linux和aix内核参数检查

    安装oracle软件时需要设置操作系统级别的用户限制,后期检查可以使用如下命令,方便问题的排查工作 linux: tail -15 /etc/security/limits.conf tail -30 ...

  3. with优化妙用

    --语法: /*with   alias_name1 as    (subquery1),  alias_name2 as    (subQuery2),  ……  alias_nameN as   ...

  4. Jenkins的job执行arquilian test时总是报JBoss启动失败错误

    我的Jenkins环境是一个Master+一个slave,Job的执行主要由slave来进行.Master只负责调度. slave上安装有JDK7.JDK8.slave agent用的是java we ...

  5. 创建Spring工程的基本步骤

    第一步:加入jar包 第二步:创建配置文件 -申明javabean 配置 <?xml version="1.0" encoding="UTF-8"?> ...

  6. Oracle 数据库视图与基表的关系

    本文转载自:http://www.linuxidc.com/Linux/2015-03/115165.htm 一:首先解释什么是视图: 视图其实就是一条查询sql语句,用于显示一个或多个表或其他视图中 ...

  7. codeforces Flipping Game 题解

    版权声明:本文作者靖心,靖空间地址:http://blog.csdn.net/kenden23/.未经本作者同意不得转载. https://blog.csdn.net/kenden23/article ...

  8. 几句代码简单实现IoC容器

    前言 最近在调试EasyNetQ代码的时候发现里面有一段代码,就是IoC容器的简单实现,跟着他的代码敲了一遍,发现了奇妙之处.当然也是因为我才疏学浅导致孤陋寡闻了.他的思路就是通过动态调用构造函数生成 ...

  9. 常用的css选择器

    1.最基本的 * * 选择所有元素. #id #firstname 选择 id="firstname" 的元素. .class .intro 选择 class="intr ...

  10. 学习“CC攻击”

    什么是CC攻击? 网上有一个定义:攻击者借助代理服务器生成指向受害主机的合法请求,实现拒绝服务攻击的攻击方式称为CC(Challenge Collapsar)攻击.[据说CC的原意为Chanlleng ...