文章分类 - 面试题
摘要:最近为了换一份新工作,准备了不少笔试题。从笔试当中自己发现了不少基础知识的盲点。很庆幸这样的机会,可以让自己对于基础知识的理解又上升一个台阶。此文介绍C#里面的序列化与反序列化的知识,如果你是大鸟,请口下留情。首先,什么是序列化与反序列化呢?序列化就是将对象的状态信息转换为可以存储或传输形式的过程。其实就是将对象持久化,比如说把对象保存为二进制或者是XML的方式。可以将对象序列到流、磁盘、内存和网络等等。相反,反序列化则是将存储或传输形式转换为对象的过程。那么,运用序列化的好处又是什么呢?(1)以某种存储形式(二进制或者是XML等)使对象持久化。序列化和反序列化用来保存内存中的数据,它不是C#
阅读全文
摘要:IT界有一句很著名的口号:强内聚、松耦合。 即使是最初级的程序员,在常常的被教导中,他也了解了这句口号的含义:我们的程序要模块化,模块要完成明确的一组关联的服务功能,要求它的各部分是相关的、有机组合起来是完整体(外部程序来看黑盒子),模块的内部各成分之间相关联程度要尽可能高(强内聚);而模块与模块之间又要求是可分拆的、少依赖的(松耦合)。 人们易于实现强内聚的模块,例如:一个函数实现一个独立的功能,这就是强内聚。 人们不易实现松耦合,因为,孤独的模块毫无意义,只有模块间的相互协调地工作,才能实现系统的目的。而对于模块间的相互关系的设计,没有一定的经验是难以把握。耦合的强度依赖于:(1)一...
阅读全文
摘要:1.堆与栈栈是一种先进后出的数据结构,是编译期间就分配好的内存空间,因此你的代码中必须就栈的大小有明确的定义。栈中每个指针(当运行到那个变量时)会指向堆中的某一内存区域或说是空间。堆(heap)就直接是内存区域了,它是为了栈的引用而开发内存的。通常内置变量就是值类型是被保存在栈中的。其他由.NET框架(Framework)提供的,或者是我们自己定义的对象即引用类型,一般被创建在堆中并将由栈中变量引用。是程序运行期间动态分配的内存空间,你可以根据程序的运行情况确定要分配的堆内存的大小。栈上存储的是:值类型,引用类型的“地址”堆上是:引用类型的“对象”或者是引用类型的实际值,可空类型2.值类型与引
阅读全文
摘要:16.new 的两种用法实例化对象 new Class(); 隐藏基类方法,即覆盖方法 public new xxx(){}17.委托与事件的用法public delegate void handles(); ////定义委托,返回值为void,没有参数public event handles eventhandels; ///定一个委托类型的事件public void test(){ ////another code}Class.eventhandels=new handels(test);18.传入某个属性的SET方法的隐含参数的名称是什么value ,它的类型和属性所声明的类型相同。1.
阅读全文
摘要:1.简述private、protected、public、internal修饰符的访问权限。 private:私有成员,在类的内部才可以访问。 protected:保护成员,该类内部和继承类中可以访问。 public:公共成员,完全公开,没有访问限制。 internal:在同一个程序集内可以访问.----@无机の剑执政的, 多谢博友2.private 私有成员会被继承吗? 会,但是不能访问。所以看上去他们似乎是不能继承的,但实际上确实被继承了。3.C#支持多重继承吗?不支持,但是可以用接口来实现。4.C#中所有对象共同的基类是什么?Systm.Object。5.什么是面向对象? 万...
阅读全文

浙公网安备 33010602011771号