赞
踩
1. 简述下面选项能够捕获运算溢出的异常类型的有 ?
A)Exception
B)SystemException
C)ArithmeticException
D)OverflowException
试题回答:AD
2. 程序员可使用()语句以程序方式引发异常 ?
A)run
B)try
C)throw
D)Catch.Exception
试题回答:C
3.所有C#异常都派生自()类 ?
A)Windows
B)Exception
C)Common.Exception
D)System.Data
试题回答:B
4.简述下列说法中正确的是 ?
A)在C#中,编译时对数组下标越界将作检查
B)在C#中,程序运行时,数组一下标越界也不会产生异常
C)在C#中,程序运行时,数组下标越界是否产生异常由用户确定
D)在C#中,程序运行时,数组下标越界一定会产生异常
试题回答:D
5.简述关于异常,下列的说法中不正确的是 ?
A)用户可以根据需要抛出异常
B)在被调用方法可通过throw语句把异常传回给调用方法
C)用户可以自己定义异常
D)在C#中有的异常不能被捕获
试题回答:D
6.简述为了能够在程序中捕获所有的异常,在catch语句的括号中使用的类名为() ?
A)Exception
B)DivideByZeroExection
C)FomatException
D)以上三个均可
试题回答:A
7.简述下列关于try…catch…finaly语句的说明中,不正确的是 ?
A)catch块可以有多个
B)finaly总会执行
C)catch块也是可选的
D)可以只有try块
试题回答:D
8.简述下列哪些选项是.NET异常处理的特点 ?
A).NET异常对象是一种特殊格式的32位整型值
B)C#代码中抛出的异常对象,只能在C#编写的代码中捕获
C)无法跨越进程边界引发和捕获异常对象
D)不同编程语言抛出/捕获异常对象的句法可以不同
试题回答:D
9.简述在C#中,在方法MyFunc内部的try…catch语句中,如果在try代码块中发生异常,并且在当前的所有catch块中都没有找到合适的catch块,则 ?
A).NET运行时忽略该异常
B).NET运行时马上强制退出该程序
C).NET运行时继续在MyFunc的调用堆栈中查找提供该异常处理的过程
D).NET抛出一个新的“异常处理未找到”的异常
试题回答:C
10.简述在.NET中,以下都是System.IO中定义的类,除了() ?
A)Stream
B)StreamWriter
C)StreamReader
D)FileReader
试题回答:D
11.下面针对FileMode枚举描述中正确的是() ?
A)Append打开文件后指向文件的开头
B)CreateNew用于创建新文件,当存在时会覆盖文件
C)Open用于打开文件,当文件不存在时会出错
D)以上都错
试题回答:C
12.简述用FileStream打开一个文件时,为了控制该FileStream用于创建不存在的文件,应将其()参数设置为Create ?
A)FileShare
B)seekorigin
C)FileAccess
D)FileMode
试题回答:D
13.简述以下关于序列化和反序列化的描述错误的是 ?
A)序列化是将对象的状态存储到特定存储介质中的过程
B)二进制格式化器的Serialize()和Deserialize()方法可以分别用来实现序列化和反序列化过程
C)如果一个类可以序列化,可它的子类和包含的各成员对象也一定可序列化
D)标识一个类可以序列化要使用[Serializable]
试题回答:C
14.C#中,将类加上()属性来标记该类支持序列化() ?
A)[Serializable]
B)[Formatable]
C)[Stream]
D)[STAThread]
试题回答:A
15.下列不属于C#预定义特性的是 ?
A)[Compliant]
B)[DllImport]
C)[Serializable]
D)[Obsolete]
试题回答:A
16.简述下列说法错误的是 ?
A)特性是派生System.Attribute的类
B)特性导致嵌入的元数据。
C)特性在代码中间用大括号来应用
D)直到被其他代码反射,特性才发挥使用
试题回答:C
17.下面不属于特性属性的是 ?
A)特性可向程序中添加元数据
B)可以将一个或多个特性应用到整个程序集、模块或较小的程序元素(如类和属性)
C)特性不可以与方法和属性相同的方式接受参数
D)程序可以使用反射检查自己的元数据或其他程序内的元数据
试题回答:C
18.简述下面特性不能标识的内容有 ?
A)类
B)属性
C)方法
D)应用程序
试题回答:D
19.简述dynamic不能使用的是() ?
A)类型的字段
B)方法参数
C)方法返回值
D)方法调用
试题回答:D
20.简述dynamic类型的不能操作的是() ?
A)接受“静态类型”的构造器创建对象
B)赋值
C)自乘
D)方法调用
试题回答:C
21.简述下面不属于Type类的方法 ?
A)GetConstructor()
B)GetInterface()
C)GetObject()
D)GetMethod()
试题回答:C
22.下面不属于Type类的属性是 ?
A)IsClass
B)IsEnum
C)IsObject
D)IsAbstract
试题回答:C
23.下面不属于System.Reflection空间的成员是 ?
A)Assembly
B)MemberInfo
C)IsClass
D)PropertyInfo
试题回答:C
24.简述反射引用的命名空间 ?
A)System.IO
B)System.Collections.Generic
C)System.Text
D)System.Reflection
试题回答:D
25.下面关于反射的说法错误的是() ?
A)使用反射需要引用System.Reflection命名空间
B)反射用于在运行时通过编程方式获得类型信息
C)如果不提供解决方案,则无法反射程序集
D)反射可以可看程序集的信息
试题回答:C
26.某程序集的版本为:"2.0.1.112"则该程序集的次版本号为 ?
A)0.0
B)1.0
C)2.0
D)112.0
试题回答:A
27.简述.NET Framework类库中的“命名空间”是一种 ?
A)类型
B)结构类型
C)数据库
D)命名规范
试题回答:D
1.C#中什么是 NuGet?
NuGet 是一个自由开源软件包管理系统,以前称 NuPack。 2010 年首次发布,已经进化为一个庞大的工具与服务生态系统。
NuGet 能够简化在 Visual Studio 项目中添加、更新和删除库的操作。
NuGet 包是打包成单个 ZIP 文件,文件扩展名是.nupkg,使用开放打包约定 (OPC) 格式,包含编译代码 (Dll)、与该代码相关的其他文件以及描述性清单(包含包版本号等信息)。
NuGet 也可以用于命令行或者脚本自动化。
2.解释什么是params关键字,如何使用?
params 是C#的关键字, params主要是在声明方法时参数类型或者个数不确定时使用,关于params 参数数组。
3.解释什么是不可变字符串?
不可变字符串是不能更改的对象,尽管你可以更改对它的引用。
只要你有绝对不应该更改的常量,就应该使用不可变字符串。
如果尝试更改不可变字符串,它可能会引发错误。
4.阐述什么是 C# 中的哈希表?
哈希表通常包含“键”和“值”。你经常会听到关于密码的“哈希表”;可以为给定的密码创建密码哈希。
哈希表本身只是键对象和值对象的通用集合,其中的值必须使用键来访问;否则无法访问它们。
5.解释 C# 中的代码编译?
程序员编写人们可读的代码,然后将该代码输入 C# 编译器。
C# 编译器会将代码编译成高效、机器可读的托管代码,称为字节码。
然后,即时编译器 (JIT) 会将字节码编译为本机或机器语言。
当程序运行时,CPU会直接执行这段代码。
6.C# 如何使用可空类型?
空值可以分配给 C# 中的变量。
这些类型称为可空类型。
大多数变量类型都是可为空的类型。
7.阐述什么是 C# 中的 LINQ?
LINQ 是指语言集成查询,LINQ 是一种使用 .NET 功能和类似于 SQL 的 C# 语法查询数据的方法。
LINQ 的优点是我们可以查询不同的数据源。
数据源可以是对象的集合、XML 文件、JSON 文件、内存中的数据或列表或数据库对象。
我们可以轻松地从任何实现 IEnumerable 接口的对象中检索数据。下面是 LINQ 的语法。
8.解释什么是自定义异常?
自定义异常用于根据用户要求捕获的错误,而不是内置在编译器中的错误。
自定义异常是实例化用户定义异常的一种简单方法。
9.C#中的异常处理是如何完成的?
异常处理通过 try、catch、finally 和 throw 模型进行管理。
这些是整个模型中使用的关键字。下面是每个关键字的解释:
Try:我们将代码保存在我们想要处理异常的 try 块中。
Catch:当 try 块中发生任何异常时,在异常处理程序的帮助下将其捕获到 catch 块中。
finally:为了不考虑错误地执行代码块,我们将该代码放在 finally 块中以执行。
Throw:发生问题时抛出异常。
10.解释 var 和 dynamic ?
var
(1)均是声明动态类型的变量。
(2).在编译阶段已经确定类型,在初始化的时候必须提供初始化的值。
(3).无法作为方法参数类型,也无法作为返回值类型。
dynamic
(1).均是声明动态类型的变量。
(2).运行时检查类型,不存在语法类型,在初始化的时候可以不提供初始化的值。
(3).反射时简化代码,但会产生性能的缺失。
11.“throw”和“throw ex”有什么区别?
throw”语句将保留前一个函数的原始错误堆栈,而“throw ex”语句将保留从抛出点开始的堆栈跟踪。
通常,建议使用“throw”,因为它提供了准确的错误信息和跟踪数据。
12. 解释什么是C#中的交错数组?
交错数组就像一个嵌套数组,其中交错数组的每个元素本身就是一个数组。
锯齿状数组的项目可以具有不同的维度和大小。
锯齿状数组是 C# 中引入的一种特殊类型的数组。
锯齿状数组是数组的数组,其中每个数组索引的长度可以不同。
13.System.Array.CopyTo() 和 System.Array.Clone() 有什么区别?
使用 Clone() 方法,我们可以使用 CopyTo() 方法创建一个包含原始数组的所有元素的新数组对象。
现有数组的所有项目都复制到另一个现有数组中。两种方式都会创建一个浅拷贝。
14.阐述什么是枚举?
枚举”关键字在许多语言中都很常见。枚举是一种值,它用作相关常量的集合,称为枚举列表。
枚举可以是 int、float、double 或 byte。但如果它不是 int,则需要显式转换。
.NET 框架枚举可用于创建数字常量。Int 是枚举元素的默认值。
默认情况下,第一个枚举数的值为 0,并且每个后续的枚举数都增加 1,就像一个数组一样。
15.举例阐述什么是装箱和拆箱?
引用类型(对象)数据类型的转换称为装箱。
拆箱是将引用类型数据类型转换为值类型。
16.解释“continue”和“break”语句 ?
在 C# 的循环中使用 continue 和 break 语句。
使用 break 语句,我们可以中断循环执行,而使用 continue 语句,我们可以中断循环的一次迭代。
17.常量和只读变量有什么区别?
常量变量只能在声明时赋值,我们不能在整个程序中更改该变量的值。
我们可以在声明时或在同一类的构造函数中将值分配给只读变量。
18.用例子解释 C# 中的注释类型?
C# 中有三种类型的注释:
单行注释,示例是://嘿,这是单行注释
多行注释,示例是:/*这是一个多行注释写成两行*/
XML 注释,示例是:///概括///这里可以写任何东西///概括
19.using() 语法有⽤吗?什么是IDisposable?
有⽤,实现了IDisposiable的类在using中创建,using结束后会⾃定调⽤该对象的Dispose⽅法,释放资源。
20.ExecuteScalar 和 ExecuteNonQuery 的区别?
ExecuteNonQuery:返回受影响的⾏数。
ExecuteScalar:返回结果集的第⼀⾏第⼀列,忽略其他⾏。
21.NET和C#有什么区别?
.NET⼀般指 .NET FrameWork框架,它是⼀种平台,⼀种技术。
C#是⼀种编程语⾔,可以基于.NET平台的应⽤。
22.C# 中的异常类有哪些?
23.解释什么是匿名⽅法?
匿名⽅法是⽤作委托的参数的⼀段代码。
//匿名⽅法例子:
Func anon = delegate(int i)
{
i = i+1;
return i;
};
//输出2
Console.WriteLine(anon(1));
//匿名⽅法例子:
Action anon2 = delegate(int i)
{
i = i + 1;
};
//输出2
Console.WriteLine(anon(1));
24. C# &和&&的区别?
相同点:
&和&&都可作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,其结果才为true,否则,只要有⼀⽅为false,则结果为false。
不同点:
&&具有短路的功能,即如果第⼀个表达式为false,则不再计算第⼆个表达式,对于上⾯的表达式,当loginUser为null时,后⾯的表达式不会执⾏,所以不会出现NullPointerException如果将&&改为&,则会抛出NullPointerException异常。& 是⽤作位运算的。
总结:
&是位运算,返回结果是int类型 &&是逻辑运算,返回结果是bool类型。
25.byte b = 'a'; byte c = 1; byte d = 'ab'; byte e = '啊'; byte g = 256; 这些变量有些错误是错 再哪⾥?
'a'是char类型,a错误。
1byte =8bit,1个汉字=2个byte,1个英⽂=1个byte=8bit所以bc是对的,deg是错的。
java byte取值范围是-128~127, ⽽C#⾥⼀个byte是0~255。
26.Application 、Cookie和 Session 两种会话有什么不同?
27.string、String;int、Int32;Boolean、bool的区别 ?
String、Int32、Boolean等都属于.Net中定义的类,而string、int、bool相当于C#中对这些类定义的别名。
28.请叙述const与readonly的区别?
29.StringBuilder 和 String 的区别?
30.接口是一种引用类型,在接口中可以声明( ),但不可以声明公有的域或私有的成员变量。
方法、属性、索引器和事件;
31.int、DateTime、string是否可以为null?
int、DateTime不能,因为其为Struct类型,而结构属于值类型,值类型不能为null,只有引用类型才能被赋值null。string可以为null。
32. 解释什么是强类型,什么是弱类型?哪种更好些?
33.Swtich 表达式可以⽤什么类型? string 类型可以?
swtich 表达式是⼀个整型(byte、int、long等),字符或字符串类型。
34.数组和 string 有没有Length()这个⽅法?
都没有Length()这个⽅法,只有Length属性。
35.C# 静态成员和⾮静态成员的区别?
36.as 和 is 的区别?
37.C# ref 和 out 的区别?
38.值类型和引⽤类型的区别?
(1).分配不同:
值类型存储在栈中,引⽤类型存储在堆中。
(2).释放⽅式不同:
值类型在作⽤域内结时,会被系统⾃动释放,可⼼减少托管堆的压⼒;引⽤类型则靠GC,所以在性能上值类型优势⽐较明显。
(3).继承不同:
引⽤类型继承Object,且也可以被其它类继承。值类型不能作为基类,但是可以继承或者多继承接⼝。另外,值类型是继承ValueType,⽽引⽤类型不会继承ValueType。
(4).传参⽅式不⼀样:
值类型在传参的时候是复制内存的数据,⽽引⽤类型通过它们的引⽤来查找的,所以传参是共享⼀个内存地址。
(5).初始化⾏为不同:
引⽤类型需要通过 new 来创建对象。
39.i++ 和 ++i 有什么区别?
i++ 是先赋值,再⾃增;++i 是先⾃增,再赋值。
40.String与Int的区别?
string、int是C#定义的类型,而String、Int32是.net类型即是CTS类型;
string 是 .NET 框架中 System.String 的别名。
string在编译的时候会转化为String类
40.C#请解释什么是上下文对象,在什么情况下要使用上下文对象?
HttpContext 封装有关个别 HTTP 请求的所有 HTTP 特定的信息。
在Golbal.asax 中访问特定请求的信息时使用。
41.Public static const int A=1;这段代码有错误么?是什么?
Static const 不能同时作用在一个变量上, const 为隐式静态。
42.C# 怎样理解静态变量?
静态变量属于类,而不属于对象,并对所有对象所享,静态成员在加类的时候就被加载。
43.C# 值类型与引用类型有什么区别?
44.请列出C#中几种循环的方法,并指出他们的不同?
4种:
For :使用于确定次数的循环
Foreach:使用于遍历的元素 只读
Do…while: 次数不确定条件随机变化但至少要保证能被执行一次
While:次数不确定 条件随机 变化
45.请说明.Net中的错误处理机制,并举例?
Try
{
//……//
}
Catch()
{
Throw e;
}
Finally
{
Conn.Close();
}
46.C#, Java 和 c++的特点,有什么异同, C#分别从c++和java中吸取了他们那些优点?
C#与Java的相似:它包括了诸如单一继承,与Java几乎同样的语法,编译成中间代码再运行的 过程。但是C#与Java有着明显的不同,C#借鉴了Delphi与COM(组件对象模型)是直接集成的特点。
C#语言定义是从C和C++继承而来的,C#还增加了自己新的特点(例如:源代码版本定义)。
C#从Java继承而来的特点:
C#从C和C++继承的特点:
C#独有的特点:
47.列举ASP.NET 页面之间传递值的几种方式。
(1).QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中。
如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法。
优点:使用简单,对于安全性要求不高时传递数字或是文本值非常有效。
缺点:缺乏安全性,由于它的值暴露在浏览器的URL地址中的。不能传递对象。
(2).Session其操作与Application类似,通常存储用户个人信息,过量的存储会导致服务器内存资源的耗尽。
优点:使用简单,不仅能传递简单数据类型,还能传递对象,数据量大小是不限制的。
缺点:在Session变量存储大量的数据会消耗较多的服务器资源,容易丢失。
(3).Cookie,Cookie用于在用户浏览器上存储小块的信息,比如用户访问某网站时用户的ID。Cookie通过HTTP头在浏览器和服务器之间来回传递的。Cookie只能包含字符串的值,如果想在Cookie存储整数值,那么需要先转换为字符串的形式。
优点:使用简单,是保持用户状态的一种非常常用的方法。比如在购物网站中用户跨多个页面表单时可以用它来保持用户状态。
缺点:常常被人认为用来收集用户隐私而遭到批评。安全性不高,容易伪造。
(4).Application对象的作用范围是整个全局,它在整个应用程序生命周期中都是有效的。它和Session变量的区别在于,前者是所有的用户共用的全局变量,后者是各个用户独有的全局变量。
优点:使用简单,消耗较少的服务器资源。不仅能传递简单数据,还能传递对象。数据量大小是不限制的。
缺点:作为全局变量容易被误操作。所以单个用户使用的变量一般不能用application。
(5).Server.Transfer,使用Server.Transfer方法把流程从当前页面引导到另一个页面中,新的页面使用前一个页面的应答流,所以这个方法是完全面象对象的,简洁有效。
调用Server.Transfer时,当前的ASPX页面终止执行,执行流程转入另一个ASPX页面,但新的ASPX页面仍使用前一ASPX页面创建的应答流。
优点:直接在服务器端重定向,使用简单方便,减少了客户端对服务器端提出请求。可以传递各种数据类型的值和控件的值。
缺点:客户端浏览器中的URL地址是不改变,会导致在新的页面可能出现一些意想不到的问题。例如:源页面和目的页面不在同一个虚拟目录或其子目录下,那么使用相对路径的图片、超链接都会导致错误的指向。
48. 什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释?
49.<%# %> 和 <% %> 有什么区别?
<%# %>表示绑定的数据源,<% %>是服务器端代码块。
50.C#可否对内存进行直接的操作?
在.net下.net引用了垃圾回收(GC)功能,它替代了程序员不过在C#中,不能直接实现Finalize方法,而是在析构函数中调用基类的Finalize()方法。
51 .Net的错误处理机制是什么?
.net错误处理机制采用try->catch->finally结构,发生错误时,层层上抛,直到找到匹配的Catch为止。
52.C#中 property 与 attribute的区别,他们各有什么用处,这种机制的好处在哪里?
property和attribute汉语都称之为属性。不过property是指类向外提供的数据区域。而attribute则是描述对象在编译时或运行时属性的。
53.解释什么是Code-Behind技术?
aspx,resx和cs三个后缀的文件,这个就是代码分离,实现了HTML代码和服务器代码分离。方便代码编写和整理。
54.C# final,finally, finalize的区别?
55.C#语言中的sleep() 和 wait() 有什么区别?
sleep()方法是将当前线程挂起指定的时间。
wait()释放对象上的锁并阻塞当前线程,直到它重新获取该锁。
56 .Net Remoting 的工作原理是什么?
服务器端向客户端发送一个进程编号,一个程序域编号,以确定对象的位置。
57.C# Error和Exception有是区别?
error表示很难恢复的错误,exception表示一种实现问题,它在程序运行正常不可以发生的。
58.C#是否可以继承String类?
因为String类是final类所以不可以继承string类。
59.ASP.NET中常见内置对象?
Response、Request、Server、Session、Application、Cookie 。
60.C# new 关键字用法
(1)new 运算符 用于创建对象和调用构造函数。
(2)new 修饰符 用于向基类成员隐藏继承成员。
(3)new 约束 用于在泛型声明中约束可能用作类型参数的参数的类型。
61.ADO.NET中的五个主要对象,并简单描述?
62.如何C#理解委托
63.如何理解.Net中的垃圾回收机制?
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。