最新面试题

 技术编程题
1) 请用VB(或者c#)语言来描述一下blowfish的加密解密算法。如果不行,可以用中文+图的形式来说明。如果不了解blowfish算法,请描述一下自己比较熟悉的加密解密算法。
2) 如果你是一位软件架构师,您将如何去搭建一个符合n-tie的架构?并请描述一下您搭建的每一层的作用。(注意:请您考虑项目中有WebService的情况)
3) 请用代码简单描述一下Singleton、抽象工厂、Bridge、Composite(任选三个)的设计模式的概念。
2. web service 数据传输有什么限制? 为什么?DataTable可以作为web service参数传递么? 
3. url重写有几种方式?
4. 简述.net中有哪几钟事务?
5. DataReader 和 DataSet 有什么区别?
6. Repeater控件不支持分页功能,简述如何实现它的分页功能?(说说实现思路)
7. 如何实现自定义用户控件(复合控件),自定义事件如何实现?简述委托原理.
8. 同一应用中页面间传值有哪些方式?
9. 强数据类型和弱数据类型有什么区别?
10. 简述fcl中常用到类库,分web表单,数据访问,io操作,网络应用等.
11. 项目分层有什么优缺点? 分层一般采用什么依据?
12. .net中的gc如何理解?

答案来自网友

第三题:
 public class Singleton
 {
  //private static bool instance_flag=false;instance flag 没用了,直接判断instance是否有实例就可以解决这个问题了.
  private static Singleton instance;
  public string name;
  private  Singleton()//将singleton函数变为private,防止直接调用new来创建它.
  {
   name="guqi";
   Console.WriteLine("你只可以看到我一次哦");
  }
  public static Singleton GetInstance()
  {
   if (instance==null)
   {
    
    //instance_flag=true;
    instance=new Singleton();
    return instance;
   }
   else return instance;
  }
 }


public static Singleton GetInstance() 

if (instance==null) 

instance=new Singleton(); 

return instance; 



第二题:

所传输的数据必须是可序列化的。因为需要转换为 XML格式以可以穿越防火墙,做到真正的数据共享.因为 DataSet 处理 DataTable 的序列化以便进行封送处理,所以您也无法传递单个 DataTable。

第三题:

1).通过 HttpContext 类的 RewriteUrl() 方法来执行 URL 重写;
2).通过自定义HTTP Module或 HTTP Handler来重写 URL;
3).借助正则表达式来重写URL:

第四题:

1)本地事务:事务操作一个数据资源,如数据库和消息队列。在物理上表现为位于同一台计算机。分2)2)布式事务:事务跨越多个数据资源,如操作两个服务器上的数据库。
按事务处理方式划分:
1) 手动事务:使用显示指令来控制事务的开始和结束,这种方式可以处理嵌套事务。SqlServer,ADO.Net都提供手动事务处理。
2)自动事务:通过为组件声明事务特性,把组件自动置于事务环境中。使用自动事务不能处理嵌套事务。自动事务的本质是依托于COM+。

第五题:
1)DataReader要保持连接;DataSet可以离线,当取回数据后可断开连接;
2)DataReader只能快速只进读取;DataSet可以顺序逆序读取;
3)DataReader中的数据只读;DataSet数据可以修改;
4)DataReader只能保持一个二维表结构;DataSet中可以含多个二维表,且能包含复杂关系;

第六题:

分页思路:一般采取两种方式。后台分页和前台分页。
后台分页:即在业务逻辑中按照当前请求返回当页数据。

第七题:

自定义事件的实现:
1)、声明事件
  如:public delegate void ValueChangedEventHandler(object sender,EventArgs e);
    如果使用自定义的事件参数,还需要定义事件参数类。
2). 在引发事件的类SourceClass中定义事件;
public event ValueChangedEventHandler Changed;  
3)SourceClass中在需要触发事件的位置,调用事件
  private void button1_Click(object sender, System.EventArgs e)
  {
      if (Changed != null)
      {
          (Changed (this, e);
      }
  }
4)、在使用方DestClass关联事件,并处理
  //与事件挂钩
  this.sourceClassInstance.Changed += new ValueChangedEventHandler (ProcessChanged);
   
  private void ProcessChanged(object sender, EventArgs e)
  {
       //处理事件
  } 

第八题:

1)服务端方式:Application,Session,Cache
2)客户端方式:cookie,QueryString,InputHidden,ViewState等.

第九题:

强数据类型是指在在传递时进行严格的类型检查,必须与要求的为完全一致的数据类型;C#属于强数据类型,如不能用1代表true,0代表false赋值给Bool型,编译器会报错.
弱数据类型在传递时不进行严格类型检查,编译器可能会进行隐式数据转换,但可能导致不可预见的异常;
C++属于弱数据类型,可以用1赋值给Bool型,代表true,0代表false.

第十题:

system.web.caching;
system.web.htmlconrols;
system.web.ui.webcontrols;
system.web.configuration;
system.web.util;
system.web.mail;
system.web.security;
system.data;
system.data.sqlclient;
system.xml;
system.collections;
system.collections.specified;
system.net;
system.text.
...


第十一题:

优点:1)易于分工协作;2)易于代码维护;3)易于移植;4)易于重用;5)清晰的架构;6)...
缺点:1)为效率带来影响;
分层的依据:
      分层的依据主要是在满足业务需求的基础上,取得上述优缺点之间取得平衡。
      不要为了分层而分层。另外分层是逻辑上的,并不一定非要独立为dll。

第十二题:

垃圾回收器。所有通过new产生的资源都由GC来统一进行回收。
当申请资源的时候在一个Heap上进行分配,由DotNet运行时来判断当前资源是否还在使用并决定合适的时机去回收资源。一般情况不需要主动调用GC。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值