23、new 关键字用法(*)
new 运算符 用于创建对象和调用构造函数。
new 修饰符 用于向基类成员隐藏继承成员。
new 约束 用于在泛型声明中约束可能用作类型参数的参数的类型。
24、如何把一个Array复制到ArrayList里(*)
实现1 string[] s ={ “111”, “22222” }; ArrayList list = new ArrayList(); list.AddRange(s);
实现2 string[] s ={ “111”, “22222” }; ArrayList list = new ArrayList(s);
25、描述线程与进程的区别?(*)
1.线程(Thread)与进程(Process)二者都定义了某种边界,不同的是进程定义的是应用程序与应用程序之间的边界,不同的进程之间不能共享代码和数据空间,而线程定义的是代码执行堆栈和执行上下文的边界。
2.一个进程可以包括若干个线程,同时创建多个线程来完成某项任务,便是多线程。而同一进程中的不同线程共享代码和数据空间。用一个比喻来说,如果一个家庭代表一个进程,在家庭内部,各个成员就是线程,家庭中的每个成员都有义务对家庭的财富进行积累,同时也有权利对家庭财富进行消费,当面对一个任务的时候,家庭也可以派出几个成员来协同完成,而家庭之外的人则没有办法直接消费不属于自己家庭的财产。
26、什么是强类型,什么是弱类型?哪种更好些?为什么?
C#中
int i=3;
i=”a”;
不可以
JavaScript中
var i=3;
i=”a”;
可以
强类型是在编译的时候就确定类型的数据,在执行时类型不能更改,而弱类型在执行的时候才会确定类型。
没有好不好,二者各有好处,强类型安全,因为它事先已经确定好了,而且效率高。弱类型更灵活,但是效率低,而且出错概率高
一般用于编译型编程语言,如c++,java,c#,pascal等,弱类型相比而言不安全,在运行的时候容易出现错误,但它灵活,多用于解释型编程语言,如javascript,vb等
27、什么是反射?
程序集包含模块,而模块又包括类型,类型下有成员,反射就是管理程序集,模块,类型的对象,它能够动态的创建类型的实例,设置现有对象的类型或者获取现有对象的类型,能调用类型的方法和访问类型的字段属性。它是在运行时创建和使用类型实例
加分的补充回答:聊用反射实现编辑器动态插件和如鹏网项目中插件体系实现第三方支付和定时任务的案例。
28、int、DateTime、string是否可以为null?
int、DateTime不能,因为其为Struct类型,而结构属于值类型,值类型不能为null,只有引用类型才能被赋值null。string可以为null。
29、using关键字有什么用?什么是IDisposable?
using可以声明namespace的引入,还可以实现非托管资源的释放,实现了IDisposiable的类在using中创建,using结束后会自动调用该对象的Dispose方法,释放资源。加分的补充回答:using其实等价于try……finally,用起来更方便。
int?→Nullable
30、Assembly.Load(“foo.dll”); 这句话是否正确?(*)
错误,正确的应该是Assembly.Load(“foo”); 或者Assembly.LoadFrom(“foo.dll”);
31、XML 与 HTML 的主要区别
1. XML是区分大小写字母的,HTML不区分。
2. 在HTML中,如果上下文清楚地显示出段落或者列表键在何处结尾,那么你可以省略
或者
之类的结束 标记。在XML中,绝对不能省略掉结束标记。
HTML:
XML:
3. 在XML中,拥有单个标记而没有匹配的结束标记的元素必须用一个 / 字符作为结尾。这样分析器就知道不用 查找结束标记了。
4. 在XML中,属性值必须分装在引号中。在HTML中,引号是可用可不用的。
5. 在HTML中,可以拥有不带值的属性名。在XML中,所有的属性都必须带有相应的值。
XML是用来存储和传输数据的
HTML是用来显示数据的
32、string str = null 与 string str = “”说明其中的区别。
答:string str = null 是不给他分配内存空间,而string str = “” 给它分配长度为空字符串的内存空间。 string str = null没有string对象,string str = “”有一个字符串对象。
33.写出一条Sql语句:取出表A中第31到第40记录(SQLServer,以自动增长的ID作为主键,注意:ID可能不是连续的。
答:解1: select top 10 * from A where id not in (select top 30 id from A)
解2: select top 10 * from A where id > (select max(id) from (select top 30 id from A )as A)
解答3:ROW_NUMBER(推荐)
34.面向对象的语言具有________性、_________性、________性
答:封装、继承、多态。
不要背,脑子中要有联想。
35.在.Net中所有可序列化的类都被标记为_____?
答:[serializable]
36.在.Net托管代码中我们不用担心内存漏洞,这是因为有了______?
答:GC。
37、什么叫应用程序域?什么是受管制的代码?什么是托管代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释?
应用程序域为安全性、可靠性、版本控制以及卸载程序集提供了隔离边界。应用程序域通常由运行库宿主创建,运行库宿主负责在运行应用程序之前引导公共语言运行库。应用程序域提供了一个更安全、用途更广的处理单元,公共语言运行库可使用该单元提供应用程序之间的隔离。
受管制的代码:在.Net环境中运行的任何代码都是受管制的代码(managed code),.Net外部的代码也运行在windows上,这些代码称为未受管制的代码(unmanaged code)。
使用基于公共语言运行库的语言编译器开发的代码称为托管代码;托管代码具有许多优点,例如:跨语言集成、跨语言异常处理、增强的安全性、版本控制和部署支持、简化的组件交互模型、调试和分析服务等。
强类型语言是能够禁止任何违反类型系统的代码的语言,或者说是能够捕获所有违反类型系统的错误的语言。我们说C++相对于C是强类型的,是因为C++禁止了一些C中的隐式转换,比如将void*转换为任意的指针类型。
装箱和拆箱使值类型能够被视为对象。对值类型装箱将把该值类型打包到 Object 引用类型的一个实例中。这使得值类型可以存储于垃圾回收堆中。拆箱将从对象中提取值类型。
每个类型成员都有一个唯一的签名。方法签名由方法名称和一个参数列表(方法的参数的顺序和类型)组成。只要签名不同,就可以在一种类型内定义具有相同名称的多种方法。当定义两种或多种具有相同名称的方法时,就称作重载。
CTS通用类型系统 (common type system)
一种确定公共语言运行库如何定义、使用和管理类型的规范。
CLR公共语言运行库
.NET Framework 提供了一个称为公共语言运行库的运行时环境,它运行代码并提供使开发过程更轻松的服务。
CLS公共语言规范
要和其他对象完全交互,而不管这些对象是以何种语言实现的,对象必须只向调用方公开那些它们必须与之互用的所有语言的通用功能。为此定义了公共语言规范 (CLS),它是许多应用程序所需的一套基本语言功能。
38、什么是code-Behind技术。
就是代码隐藏,在ASP.NET中通过ASPX页面指向CS文件的方法实现显示逻辑和处理逻辑的分离,这样有助于web应用程序的创建。比如分工,美工和编程的可以个干各的,不用再像以前asp那样都代码和html代码混在一起,难以维护。
39、接口是一种引用类型,在接口中可以声明( a),但不可以声明公有的域或私有的成员变量。
a) 方法、属性、索引器和事件;
c) 索引器和字段;
d) 事件和字段;
40. 在ADO.NET中,对于Command对象的ExecuteNonQuery()方法和ExecuteReader()方法,下面叙述错误的是(c)。
a) insert、update、delete等操作的Sql语句主要用ExecuteNonQuery()方法来执行;
b) ExecuteNonQuery()方法返回执行Sql语句所影响的行数。
c) Select操作的Sql语句只能由ExecuteReader()方法来执行;
d) ExecuteReader()方法返回一个DataReder对象;
解答:ExecuteScalar→select getdate()。
41. 下列关于C#中索引器理解正确的是(c )
a) 索引器的参数必须是两个或两个以上
b) 索引器的参数类型必须是整数型
c) 索引器没有名字
d) 以上皆非
42. 要创建多文档应用程序,需要将窗体的(d )属性设为true。
a) DrawGrid;
b) ShowInTaskbar;
c) Enabled;
d) IsMdiContainer;
43. 如果设treeView1=new TreeView(),则treeView1.Nodes.Add(“根节点”)返回的是一个 (a)类型的值。
a) TreeNode;
b) int;
c) string;
d) TreeView;
44. 下面关于XML的描述错误的是(d)。
a) XML提供一种描述结构化数据的方法;
b) XML 是一种简单、与平台无关并被广泛采用的标准;
c) XML文档可承载各种信息;
d) XML只是为了生成结构化文档;
45、以下的C#代码,试图用来定义一个接口:
public interface IFile
{
int A;
int delFile()
{
A = 3;
}
void disFile();
}
关于以上的代码,以下描述错误的是(d )。
a) 以上的代码中存在的错误包括:不能在接口中定义变量,所以int A代码行将出现错误;
b) 以上的代码中存在的错误包括:接口方法delFile是不允许实现的,所以不能编写具体的实现函数;
c) 代码void disFile();声明无错误,接口可以没有返回值;
d) 代码void disFile();应该编写为void disFile(){};
空和null不一样。