首页 > 代码库 > C# 面试题
C# 面试题
1、new有几种用法?
三种:
1、new是运算符,用于创建对象和调用构造函数。ClassA a = new ClassA();
2、new是修饰符,用于隐藏基类成员的继承成员。
3、new是约束。用在泛型中添加类型约束。 Class Test<T> where T:new(){ public T GetItem(){return newT();}}
2、new与override的区别?
new修饰符隐藏了重写方法,通过将派生对象转为为基类对象,调用了基类的方法。而override则是完全重写了方法,即便是转为基类对象也调用的也是派生类的重写方法。
即:new隐藏的基类方法,override重写基类方法。
3、概述o/rmapping 的原理?
利用ORM工具(Hibernate等),使用反射、配置将类与数据库表进行映射。
Class<——>Table Property <——>Field
4、类成员有哪些访问形式?
1、this.类成员; 2、new 类的对象调用类成员; 3、使用static关键字,用类调用
5、ADO.NET中的五个重要对象,并简要描述?
1、Connection(连接数据库)
2、Command(执行T-SQL语句)
3、DataAdapter(用户填充DataSet,断开模式)
4、DataReader(读取数据库,一种只读模式,只向前的)
5、DataSet(数据集,好比电脑的内存)
6、.NET中class和struct的异同?
Class都继承自System.object类,是引用类型;
Struct都是继承自System.ValueType类,是一种值类型。
Class可继承类和接口,struct只能继承接口,且不能作为类的基类;class需要使用new实例化,struct可以不使用new实例化;class的回收靠垃圾回收机制,stuct使用完后,自动分解;class的比较可以用equals和==来比,stuct只能用==比较。
7、概述.NET里对 remoting 和 webservice 两项技术的理解和实际中的应用?
1、Remoting 是MarshByReference的,可以传变量的引用,直接对服务器对象操作。速度快,适合Intranet(企业内部互联网),一般用在C/S系统中。WebService 是MarshByValue的,必须传对象的值。速度慢,可以过FIREWALL,配置比较简单,适合Internet(因特网),一般用在B/S系统中。 2、一般来说,Remoting是和平台相关的,需要客户和服务器都是.NET,但可配置特性比较好,可以自定义协议。WebService可以做到跨平台通信,但必须采用SOAP协议。 3、 SOAP消息有RPC和文档两种样式。文档样式的body元素中包含一个或多个元素,可以是任何内容,只要接受者理解就行了。
8、概述三层结构体系?
三层架构从下至上分别为:数据访问层、业务逻辑层、表示层。区分层次的目的即为了“高内聚,低耦合”的思想。
1:数据访问层:主要负责各个对数据文件的操作。
2:业务逻辑层:主要负责对数据层的操作。也就是说把一些数据层的操作进行组合。
3:表示层:主要对用户的请求接受,以及数据的返回,为客户端提供应用程序的访问。
9、面向对象的思想包括什么?
封装:用抽象的数据类型将数据和基于数据的操作封装在一起,数据被保护在抽象数据类型内部。
继承:子类拥有父类的所有数据和操作。
多态:一个程序中同名的不同方法共存的情况。
10、ASP.NET的用户控件和自定义控件?
用户控件创建容易,但是易用性较差。自定义控件,创建难,但是易用性好。
11、什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释?
应用程序域:操作系统和运行库环境通常会在应用程序间提供某种形式的隔离,以确保在一个应用程序中运行的代码不会对其他不相关的应用程序产生不良影响
受管制的代码:把有关内存管理的操作全部交给.NET的CLR来管理。不能直接进行内存的读取之类的和硬件相关的操作。比较安全。
托管代码:使用基于公共语言运行库的语言编译器开发的代码称为托管代码。
从值类型接口转换到引用类型:装箱。
从引用类型转换到值类型:拆箱。
重载:相同名称的不同方法,他们具有不同的签名(相同的名称,不同的参数类型和顺序)。
强类型:C# 是强类型语言;因此每个变量和对象都必须具有声明类型。
CTS:通用类型系统;CLS:通用语言规范;CLR:公共语言运行库。
12、列举了解的XML技术及应用?
很多新的 Internet 语言是通过 XML 创建的,如:
XHTML - 最新的 HTML 版本
WSDL - 用于描述可用的 web service
WAP 和 WML - 用于手持设备的标记语言
RSS - 用于 RSS feed 的语言
RDF 和 OWL - 用于描述资源和本体
SMIL - 用于描述针针对 web 的多媒体
XML主要应用与数据交互,web服务等领域。
13、C#中委托是什么?事件是不是一种委托?
委托是一种安全的类似于函数指针,但是她比指针要安全的多,它可以把方法作为一个参数传递给另一个方法,可以理解为指向函数的引用。事件是一种消息机制,它是一种委托,委托不带方法体。
本文出自 “StudyBao” 博客,谢绝转载!
C# 面试题