常规技术面试题(.NET)下一部分

这是一篇关于.NET技术面试的题目集合,涵盖了泛型、WinForm、Web开发、数据访问、集群与分布式等多个方面。泛型可以提高代码复用性和安全性,DateTime.Parse()在异常情况下应使用TryParse()。XML与HTML的区别包括大小写敏感性、标记结束要求等。结构和类在类型、存储、作用和初始化上有明显区别。IClonable接口用于对象的深拷贝。在.NET中,Page_Load先于Button_Click执行,而使用Session和Cookie是两种不同的数据存储方式。ASP.NET中,数据绑定与传统数据绑定的主要区别在于是否自动同步数据。MVC模式提供了更好的代码组织和可测试性,相比WebForm更加轻量级。在数据访问方面,ADO.NET的DataSet和DataReader有各自的适用场景,而ORM如Entity Framework简化了数据库操作。Zookeeper是分布式协调服务,用于管理集群状态。堆和栈在内存管理上有所不同,正则表达式用于字符串匹配,SQL注入是安全问题,应通过参数化查询等方式预防。
摘要由CSDN通过智能技术生成

 (我只是个努力的搬运工,别人整理的,暂时发布,供我自己复习的。)

目录

1.你对泛型了解吗?简单说明一下泛型的有什么好处?

6.2  .NET WinForm部分

6.3  .NET Web开发部分

6.4  数据访问部分

6.5  集群与分布式

6.6  其他部分

1.你对泛型了解吗?简单说明一下泛型的有什么好处?

泛型:“泛型”的字面意思就是广泛的类型。通过参数化类型来实现在同一份代码上操作多种数据类型。利用“参数化类型”将类型抽象化,从而实现灵活的复用 好处是——可以复用代码,降低耦合性,而且还提高了代码的可读性以及安全性。


2 DateTime.Parse(myString); 这行代码有什么问题?

有问题,当myString不能满足时间格式要求的时候,会引发异常,建议使用DateTime.TryParse() 



3 XML  HTML的主要区别?

  • 1. XML是区分大小写字母的,HTML不区分。 
  • 2. 在HTML中,如果上下文清楚地显示出段落或者列表键在何处结尾,那么你可以省略结束标记。在XML中,绝对不能省略掉结束标记。 
  • 3. 在XML中,拥有单个标记而没有匹配的结束标记的元素必须用一个 / 字符作为结尾。这样分析器就知道不用 查找结束标记了。 
  • 4. 在XML中,属性值必须分装在引号中。在HTML中,引号是可用可不用的。 
  • 5. 在HTML中,可以拥有不带值的属性名。在XML中,所有的属性都必须带有相应的值。



4 请简述结构和类的区别

  • 1、类型不同:结构是一种值类型,而类是引用类型。
  • 2、存储不同:结构使用栈存储,而类使用堆存储。栈的空间相对较小.但是访问效率相对较高.堆的空间相对较大.但是访问效率相对较低。
  • 3、作用不同:类是反映现实事物的一种抽象,而结构体的作用只是一种包含了具体不同类别数据的一种包装,结构体不具备类的继承多态特性。
  • 4、初始化不同:类可以在声明的时候初始化,结构不能在申明的时候初始化(不能在结构中初始化字段),否则报错。



5 请解释一下IClonable

IClonable方法是实现深度复制的接口,实现它应该能深度复制一个对象出来。深度复制的特征的调用对象的构造方法,创建新的对象,包括创建对象中嵌套的引用对象的新实例。而Shadow复制则不同,是浅表复制,不重新创建新实例。浅表复制的实现是Object.MemberWiseClone().

深度复制(Deep Copy)与浅表复制(Shadow Copy)

6 用接口或父类作为输入的参数有什么好处?返回值如果是接口是为了什么?

接口或父类作为参数,所有继承了此接口或父类的类都可以使用,即你给此方法传参数的时候,可以把继承了这个接口或父类的类的实例传给这个方法。可以一次性传入多种字段、方法等而不用定义多个形参,接口作为返回值,返回的是实现接口的对象。

7 =  == 的区别?

= 是赋值运算符, ==是关系运算符,用于等值判断

8 数组有没有length()这个方法?String 有没有length()这个方法?

数组是没有length()这个方法的,有length这个属性,可以计算数组的长度。

String是有length()这个方法的,用来计算字符串的长度。

9 数组和泛型集合的区别

泛型集合只能放定义类型的元素,会自动增大,取出时不用做类型转换

数组只能放定义类型的元素,不会自动增大,取出时不用做类型转换。

10 System.Object中有什么方法?有什么用?

  • 1.ToString():是获取对象的字符串表示的一种快捷方式
  • 2.Finalize():允许对象在垃圾回收该对象之前尝试并执行释放资源并执行其他清理操作
  • 3.GetType():获取当前实例的确切运行时类型
  • 4.GetHashCode():用作特定类型的哈希函数
  • 5.构造函数方法:主要用来在创建对象时初始化对象

11 Linqconcat union intersect的区别

Concat  :连接两个序列。

Union  : 通过使用默认的相等比较器生成两个序列的并集。

Intersect : 通过使用默认的相等比较器对值进行比较生成两个序列的交集。

12 请问哈希表(hashtable)是如何存储数据的?

以哈希表的形式存储数据,数据的形式是键值对。

13 .NET中的CTS、CLS和CLR

  • CLR公共语言运行库
  • CLS通用语言规范
  • CTS通用类型系统

14 NETC#的区别

.NET一般指.Net Framework框架,是Microsoft为开发应用程序而创建的一个具有革命意义的平台,C#运行在.NET(CLR)上的,用于创建应用程序的一种高级编程语言。

15 设计模式有哪些?

  • 1.单例设计模式
  • 2.工厂设计模式
  • 3.代理设计模式
  • 4.观察者设计模式
  • 5.适配器模式
  • 6.原型模式

16 StringBuilder  String的区别?

String是不可变化的字符,它只能赋值一次,每一次内容发生改变,都会生成一个新的对象。

StringBuilder是可以变化的字符,每次操作都是对自身对象进行操作,而不是生成新的对象,其所占空间会随着内容的增加而扩充。

17 LinqSQL语句的执行速度哪个更快?

 SQL语句的执行速度更快

18 C#代码编译成中间语言有什么作用?

优点:一是可以实现平台无关性,既与特定CPU无关;二是只要把.NET矿建某种语言编译成IL代码,就实现.NET矿建中语言之间的交互操作。

    IL是.NET矿建中的中间语言(Intermediate Language)的缩写。



6.2  .NET WinForm部分



1 在.NETC# or vb.net)中如何取消一个窗体的关闭?

private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)

{


e.Cancel=true;

}


2 在.NETC# or vb.net)如何启动另一个程序

Process.Start("cmd");


3 在.netC# or vb.net)中,Appplication.Exit()  Form.Close()有什么不同

Appplication.Exit()是退出整个应用程序,Form.Close()是关闭其中一个form。


4 DataGridViewDataSource可以连接什么数据源?

  • 第一种:
  •    DataSet ds=new DataSet ();
  •    this.dataGridView1.DataSource=ds.Tables[索引或表名];
  • 第二种:
  •    ArrayList al = new ArrayList();
  •    this.dataGridView1.DataSource = al;
  • 第三种:
  •     Dictionary<string, string> dic = new Dictionary<string, string>();
  •     this.dataGridView1.DataSource = dic;
  • 第四种:
  •      DataView dv = new DataView();
  •      this.dataGridView1.DataSource = dv;



6.3  .NET Web开发部分


1 Page_Onload里面一般会写什么代码?

通过判断IsPostBack属性判断是否首次加载。在页面首次加载时,编写控件初始化代码和页面变量初始化代码


2 什么时候会用到cookie,session?它们的区别分别是什么?

Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。

  • 1.session 在服务器端,cookie 在客户端(浏览器)
  • 2.session 默认被存在服务器的一个文件里(不是内存)
  • 3.session 的运行依赖 session id,而 session id 是存在 cookie 中的,也就是说,如果浏览器禁用了 cookie ,同时 session 也会失效(但是可以通过其它方式实现,比如在 url 中传递 session_id)
  • 4.session 可以放在 文件、数据库、或内存中都可以。
  • 5.用户验证这种场合一般会用 session 因此,维持一个会话的核心就是客户端的唯一标识,即 session id


3 ASP.NETWebPage的生命周期?

初始化-》加载视图状态-》处理回发数据-》加载-》发送回发更改通知-》处理回发事件-》预呈现-》保存状态-》呈现-》处置-》卸载


4 页面之间传值的几种方式?

    页面间传值: 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值