岗位面试题库合集-IT工程师面试题-最新.net面试题
VIP免费
2024-12-15
11
0
298KB
101 页
5.9玖币
侵权投诉
.net 理论知识
什么是面向对象
面向对象 OO = 面向对象的分析 OOA + 面向对象的设计 OOD + 面向对象的编程
OOP;
通俗的解释就是万物皆对象,把所有的事物都看作一个个可以独立的对象(单元),
它们可以自己完成自己的功能,而不是像 C那样分成一个个函数;
现在纯正的 OO 语言主要是 java 和C#,C++也支持 OO,C是面向过程的。
阐述面向接口、面向对象、面向方面编程的区别
面向对象不好解释,可以理解为以一切元素都是对象,在设计时以对象为单位,考虑它的
属性及方法。设计中采用了封装、继承、抽象的手法
面向接口本身就是面向对象的,无所谓区别,只不过面向接口的好处是耦合性低
面向方面 Aspect-Oriented Programming (AOP)就是大名鼎鼎的 AOP。其实有点象 struts 里的
拦截。
举例:假设有在一个应用系统中,有一个共享的数据必须被并发同时访问,首先,将
这个数据封装在数据对象中,称为 Data Class,同时,将有多个访问类,专门用于在同一时
刻访问这同一个数据对象。
为了完成上述并发访问同一资源的功能,需要引入锁 Lock 的概念,也就是说,某个时刻,
当有一个访问类访问这个数据对象时,这个数据对象必须上锁 Locked,用完后就立即解锁
unLocked,再供其它访问类访问。
面向对象的思想主要包括什么?
继承:子类拥有父类的所有数据和操作。
封装:用抽象的数据类型将数据和基于数据的操作封装在一起,数据被保护在抽象数据类
型内。
多态:一个程序中同名的不同方法共存的情况。有两种形式的多态–重载与重写。
抽象类是否可以继承实体类?
抽象类可以继承实体类,但是有个条件,条件是,实体类必须要有明确的构造函数。
当类 T只声明了私有实例构造函数时,则在 T的程序文本外部,是否可以从 T派生出新的
类,是否可以直接创建 T的任何实例。
不可以,不可以
C#中有没有静态构造函数,如果有是做什么用的?
有. 静态构造函数用于初始化类。在创建第一个实例或引用任何静态成员之前,将自动调
用静态构造函数来初始化类。静态构造函数既没有访问修饰符,也没有参数。在创建第一个
实例或引用任何静态成员之前,将自动调用静态构造函数来初始化类。无法直接调用静态
构造函数。在程序中,用户无法控制何时执行静态构造函数。静态构造函数的典型用途是:
当类使用日志文件时,将使用这种构造函数向日志文件中写入项。
什么是.net?
.net 是一种平台和框架, .net 不是单纯的语言也不是单纯的工具,它是从底层平台开始构建
起来的一个整体框架
请以图示方式解释.net framework?
VB
C++
C#
Jscript
…
Common Language Specification
XML Web
services
Web Forms
Windows Forms
Data and XML
Base Class Library
CLR
CLI
Visual Studio .NET
程序集与命名空间有什么不同?
命名空间是用于避免命名冲突,专用于组织代码,当代码要在其他某个应用程序中重
用时,可以降低复杂性。
程序集是重用代码的一种方式验证控件
不同: 可以将相同命名空间中的类部署到不同的程序集中,也可以命名空间中的类部署到一
个程序集中
命名空间
程序集
有逻辑编译时机制
有物理编译时机制
不是运行时实体
是运行时实体
为源代码元素的名称提供逻辑结构
为可执行文件的运行时提供物理结构
什么是 WEB 控件?使用 WEB 控件有那些优势?
WEB 控件是能拖放在WEB 页面上的控件
WEB 控件分为:内部控件, 列表控件, 复杂控件,
•WEB 控件优势:
l Web 控件是对象,与对象一样,Web 控件拥有方法和属性,并且响应事件
l 一旦将 Web 控件包括在 Web 页中,就可以设置其属性并调用其方法
l 可以为 Web 控件编写服务器端代码以响应在客户端上发生的事件
ASP。NET 中共有几种类型的控件?各有什么区别?
WEB 控件分为:内部控件, 列表控件, 复杂控件, 验证控件
内部控件:内部控件的使用方法与 HTML 控件相同,它们映射到 HTML 元素并通过使
用 runat = "server" 属性在服务器上执行
列表控件:用于在 Web 页中创建数据列表
复杂控件:当希望控件拥有复杂的功能或使用 HTML 元素无法创建的功能丰富的用户
界面时,可以使用复杂控件
验证控件:输入控件的数据需要进行准确性和取值范围方面的检查
WEB 控件可以激发服务端事件,请谈谈服务端事件是怎么发生并解释其原理?自动传回是
什么?为什么要使用自动传回。
由于ASP。NET 是Web 页面和服务端分离的,因此要产生了服务端事件.
使用_doPostBack 函数能够自动地把客户端的javascript 事件转变为一个服务器端的事
件
,Asp.net 框架自动为我们处理有关的细节简化工作。
使用自动传回的特性:在检测到一个特定用户动作时,自动传回能够将这个页面传回服务
器以处理
事件.
在web 控件发生事件时,客户端采用提交的形式将数据交回服务端,服务端先调用
Page_Load 事件,然后根据传回的状态信息自动调用服务端事件自动传回是当我们在点击客
户端控件时,采用提交表单的形式将数据直接传回到务端。只有通过自动传回才能实现服
务端事件的机制,如果没有自动回传机制就只能调用客户端事件,而不能调用服务端事件
请解释 ASP.NET 中以什么方式进行数据验证。
Aps.net 中有非空验证,比较验证,取值范围验证,正则表达式验证及客户自定义验证五
大控件,另还有一个集中验证信息处理控件
什么是 ASP.Net 中的用户控件
用户控件是能够在其中放置标记和 Web 服务器控件的容器。然后,可以将用户控件作为一
个单元对待,为其定义属性和方法。
用户控件以。ascx 为扩展名,可以拖到不同的页面中调用,以节省代码。比如登陆可能在多
个页面上有,就可以做成用户控件,但是有一个问题就是用户控件拖到不同级别的目录下
后里面的图片等的相对路径会变得不准确,需要自已写方法调整。
问这样的问题,一般是迷惑你。因为新手还是分不清楚用户控件和服务器控件(也称自定义
控件),用户控件一般用在内容多为静态,或者少许会改变的情况下,用的比较大,类似
ASP 中的 include。。但是功能要强大的多。
WEB 控件及 HTML 服务端控件能否调用客户端方法?如果能,请解释如何调用?
可以调用
例如:<asp:TextBox id="TextBox1" onclick="clientfunction();" runat="server"></asp:TextBox>
<INPUT id="Button2" value="Button" name="Button2"runat="server"
onclick="clientfunction();">
C#, Java 和 c++的特点,有什么相同的地方,不同的地方, C#分别从 c++和java 中吸取了
他们那些优点?
C#看起来与 Java 有着惊人的相似;它包括了诸如单一继承,界面,与Java 几乎同样的语法,和编
译成中间代码再运行的过程.但是 C#与Java 有着明显的不同,它借鉴了Delphi 的一个特点,与
COM(组件对象模型)是直接集成。
微软 c#语言定义主要是从 C和C++继承而来的,而且语言中的许多元素也反映了这一点.C#
在设计者从C++继承的可选选项方面比Java 要广泛一些(比如说 structs),它还增加了自己新
的特点(比方说源代码版本定义).
C#从Java 继承而来的特点
类:在 C#中类的声明与 Java 很相似。特点看起来与 Java 相比没有变化.
布尔运算:条件表达式的结果是布尔数据类型,布尔数据类型是这种语言中独立的一种数据
类型.从布尔类型到其他类型没有直接的转换过程.布尔常量 true 和false 是C#中的关键字.
错误处理:如 Java 中那样,通过抛出和捕捉异常对象来管理错误处理过程.
内存管理:由底层.NET 框架进行自动内存垃圾回收.
C#从C和C++继承的特点
编译:程序直接编译成标准的二进制可执行形式.
结构体:一个 C#的结构体与 C++的结构体是相似的,因为它能够包含数据声明和方法.但是,
不象 C++,C#结构体与类是不同的而且不支持继承.但是,与Java 相同的是,一个结构体可以实
现界面.
预编译:C#中存在预编译指令支持条件编译,警告,错误报告和编译行控制. #error
C#独有的特点
中间代码:微软在用户选择何时 MSIL 应该编译成机器码的时候是留了很大的余地.微软公
司很小心的声称 MSIL 不是解释性的,而是被编译成了机器码.它也明白许多--如果不是大多
数的话--程序员认为Java 程序要不可避免的比C编写的任何东西都要慢.而这种实现方式决
定了基于 MSIL 的程序(指的是用 C#,Visual Basic,"Managed C++"--C++的一个符合 CLS 的版
本--等语言编写的程序)将在性能上超过"解释性的"Java 代码.当然,这一点还需要得到事实证
明,因为C#和其他生成 MSIL 的编译器还没有发布.但是 Java JIT 编译器的普遍存在使得Java
和C#在性能上相对相同.象"C#是编译语言而 Java 是解释性的,"之类的声明只是商业技
巧.Java 的中间代码和 MSIL 都是中间的汇编形式的语言,它们在运行时或其它的时候被编译
成机器代码.
命名空间中的声明:当你创建一个程序的时候,你在一个命名空间里创建了一个或多个类.同
在这个命名空间里(在类的外面)你还有可能声明界面,枚举类型和结构体.必须使用 using 关
键字来引用其他命名空间的内容.
基本的数据类型:C#拥有比C,C++或者Java 更广泛的数据类型 .这些类型是 bool, byte,
ubyte, short, ushort, int, uint, long, ulong, float, double,和decimal.象Java 一样,所有这些类型都
有一个固定的大小.又象C和C++一样,每个数据类型都有有符号和无符号两种类型.与 Java
相同的是,一个字符变量包含的是一个 16 位的 Unicode 字符.C#新的数据类型是 decimal 数据
类型,对于货币数据,它能存放28 位10 进制数字.
两个基本类:一个名叫object 的类是所有其他类的基类.而一个名叫string 的类也象 object
一样是这个语言的一部分.作为语言的一部分存在意味着编译器有可能使用它--无论何时你
在程序中写入一句带引号的字符串,编译器会创建一个 string 对象来保存它.
参数传递:方法可以被声明接受可变数目的参数.缺省的参数传递方法是对基本数据类型进
行值传递.ref 关键字可以用来强迫一个变量通过引用传递,这使得一个变量可以接受一个返
回值.out 关键字也能声明引用传递过程,与ref 不同的地方是,它指明这个参数并不需要初始
值.
与COM 的集成:C#对Windows 程序最大的卖点可能就是它与 COM 的无缝集成了,COM 就
是微软的Win32 组件技术.实际上,最终有可能在任何.NET 语言里编写 COM 客户和服务器
端.C#编写的类可以子类化一个以存在的 COM 组件;生成的类也能被作为一个 COM 组件使
用,然后又能使用,比方说, JScript 语言子类化它从而得到第三个COM 组件.这种现象的结果
是导致了一个运行环境的产生,在这个环境里的组件是网络服务,可用用任何.NET 语言子类
化.
索引下标:一个索引与属性除了不使用属性名来引用类成员而是用一个方括号中的数字来
匿名引用(就象用数组下标一样)以外是相似的.
代理和反馈:一个代理对象包括了访问一个特定对象的特定方法所需的信息 .只要把它当成
一个聪明的方法指针就行了.代理对象可以被移动到另一个地方,然后可以通过访问它来对已
存在的方法进行类型安全的调用.一个反馈方法是代理的特例.event 关键字用在将在事件发
生的时候被当成代理调用的方法声明中.
在C#中,string str = null 与string str = “”的区别。
string str = null 是不给他分配内存空间,而 string str = ""给它分配长度为空字符串的内存空
怎样理解静态变量?静态成员和非静态成员的区别?
静态变量属于类,而不属于对象;并对所有对象所享;静态成员在加类的时候就被加载。
静态成员和非静态成员的区别?
静态变量使用 static 修饰符进行声明,静态成员在加类的时候就被加载(在类被实例化
时创建,哪个对),通过类进行访问
不带有static 修饰符声明的变量称做非静态变量,在对象被实例化时创建,通过对象进
行访问
一个类的所有实例的同一静态变量都是同一个值,同一个类的不同实例的同一非静态变
量可以是不同的值
静态函数的实现里不能使用非静态成员,如非静态变量、非静态函数等
DataReader 和DataSet 的异同
DataReader 和DataSet 最大的区别在于,DataReader 使用时始终占用SqlConnection,在线操
作数据库,任何对 SqlConnection 的操作都会引发 DataReader 的异常,因为DataReader 每
次只在内存中加载一条数据,所以占用的内存是很小的,因为DataReader 的特殊性和高性
能。所以 DataReader 是只进的,你读了第一条后就不能再去读取第一条了。
DataSet 则是将数据一次性加载在内存中。抛弃数据库连接,读取完毕即放弃数据库连接,
因为DataSet 将数据全部加载在内存中。所以比较消耗内存,但是确比DataReader 要灵活,
可以动态的添加行,列,数据。对数据库进行回传更新操作。
简述静态类和静态成员
静态类中的成员都必须是静态的。静态类无构造方法,并且是密封类无法被继承。
静态成员访问时只能通过类名来访问,不能通过对象访问(和JAVA 有区别),this
也无法访问静态成员。
描述接口的作用
充当类的功能界面,接口里的成员属于抽象描述,必须通过类的实现才能使用。如:某个
项目有多个模块组成,每个模块由一个开发者完成,开发者只需编写完模块功能实现后,
留下的接口供其他人使用。其他人在程序中,使用接口时,只需知道接口的功能,不了解
如何实现。
当功能模块无法满足需要或功能模块的需求变更时,程序员只需将该功能模块的实现代码
进行修改和扩充,而其他调用接口的程序无须改动。接口的这种应用模式成为 brige 模式
(即意图和实现分离)
接口反映了面向对象的多态特征,即通过相同方法得到不同实现。接口也反映了面向对象
的封装特征,使用者可以不清楚接口成员的实现细节。
注意:因为接口成员默认的访问权限是public,所以在实现接口时,类的成员必须为
public,且方法名和参数必须一致。
描述抽象类
用abstract 修饰的类。抽象类可以包含实现的成员。未实现的成员隐含的是 virtual 属性,
子类实现时必须用 override 关键字。
请解释接口的显式实现有什么意义?
接口是其他类型为确保它们支持某些操作而实现的引用类型。接口从不直接创建而且没
有实际的表示形式,其他类型必须转换为接口类型。一个接口定义一个协定。实现接口的类
或结构必须遵守其协定。接口可以包含方法、属性、索引器和事件作为成员。
在项目中为什么使用接口?接口的好处是什么?什么是面向接口开发?
接口只是一种约束。使用 interface 去定义某些特定的功能,为的是不要将代码写死在
自定义类里,以便在系统开发、事后维护、功能扩充 上更有扩展性。
接口用于描述一组类的公共方法/公共属性. 它不实现任何的方法或属性,只是告诉继
承它的类至少要实现哪些功能,继承它的类可以增加自己的方法. 使用接口可以使继承它的
类: 命名统一/规范,易于维护。提供永远的接口。 当类增加时,现有接口方法能够满足继承
类中的大多数方法,没必要重新给新类设计一组方法,也节省了代码,提高了开发效率。
面向接口开发的好处有结构清晰,类间通信简单易懂,扩展性好,提高复用性等等。
面向接口开发就是指面向抽象协议编程,实现者在实现时要严格按协议来办。
接口和类有什么异同。
不同点:
1、不能直接实例化接口。
2、接口只包含方法或属性的声明,不包含方法的实现。
3、接口可以多继承,类只能单继承。
4、类有分部类的概念,定义可在不同的源文件之间进行拆分。
5、表达的含义不同,接口主要定义一种规范,统一调用方法,也就是规范类,约束类,类
是方法功能的实现和集合
相同点:
1、接口、类和结构都可以从多个接口继承。
2、接口类似于抽象基类:继承接口的任何非抽象类型都必须实现接口的所有成员。
3、接口和类都可以包含事件、索引器、方法和属性。
您在什么情况下会用到虚方法或抽象类,接口?
如果某个方法可能性在派生类中会被重写。这时就将该方法写为虚方法。
抽象类:是一个类型,与派生类之间的关系是一个“ISA”的关系。用来做基类,抽象
类不能创建对象,类中包括抽象方法和实例方法。
接口:是设计一个规范,描述了 Can do ;与实现类之间是中”LINE A 的关系,C#中
接口不能包含字段访问修饰符。
对比抽象基类和接口的使用
抽象类能有具体实现,而接口只定义行为规范,不能有具体实现。一个类只能继承一
个父类,但能实现多个接口。
C#中的接口和抽象类有什么异同。你选择使用接口和抽象类的依据是什么?
1、继承:接口支持多继承;抽象类不能实现多继承。
2、表达的概念:接口用于规范,抽象类用于共性。抽象类是一类事物的高度聚合,那
么对于继承抽象类的子类来说,对于抽象类来说,属于 "是"的关系;而接口是定义行为规
范,因此对于实现接口的子类来说,相对于接口来说,是"行为需要按照接口来完成"。
3、方法实现:对抽象类中的方法,即可以给出实现部分,也可以不给出;而接口的方
法(抽象规则)都不能给出实现部分,接口中方法不能加修饰符。
4、子类重写:继承类对于两者所涉及方法的实现是不同的。继承类对于抽象类所定义
的抽象方法,可以不用重写,也就是说,可以延用抽象类的方法;而对于接口类所定义的
方法或者属性来说,在继承类中必须重写,给出相应的方法和属性实现。
5、新增方法的影响:在抽象类中,新增一个方法的话,继承类中可以不用作任何处理;
而对于接口来说,则需要修改继承类,提供新定义的方法。
6、接口可以作用于值类型(枚举可以实现接口)和引用类型;抽象类只能作用于引用
类型。
摘要:
展开>>
收起<<
.net理论知识什么是面向对象面向对象OO=面向对象的分析OOA+面向对象的设计OOD+面向对象的编程OOP;通俗的解释就是万物皆对象,把所有的事物都看作一个个可以独立的对象(单元),它们可以自己完成自己的功能,而不是像C那样分成一个个函数;现在纯正的OO语言主要是java和C#,C++也支持OO,C是面向过程的。阐述面向接口、面向对象、面向方面编程的区别面向对象不好解释,可以理解为以一切元素都是对象,在设计时以对象为单位,考虑它的属性及方法。设计中采用了封装、继承、抽象的手法面向接口本身就是面向对象的,无所谓区别,只不过面向接口的好处是耦合性低面向方面Aspect-OrientedProgr...
声明:本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。玖贝云文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知玖贝云文库,我们立即给予删除!
相关推荐
-
公司营销部领导述职述廉报告VIP免费
2024-12-03 4 -
100套述职述廉述法述学框架提纲VIP免费
2024-12-03 3 -
20220106政府党组班子党史学习教育专题民主生活会“五个带头”对照检查材料VIP免费
2024-12-03 3 -
20220106县纪委监委领导班子党史学习教育专题民主生活会对照检查材料VIP免费
2024-12-03 6 -
A文秘笔杆子工作资料汇编手册(近70000字)VIP免费
2024-12-03 3 -
20220106县领导班子党史学习教育专题民主生活会对照检查材料VIP免费
2024-12-03 4 -
经济开发区党工委书记管委会主任述学述职述廉述法报告VIP免费
2024-12-03 34 -
20220106政府领导专题民主生活会五个方面对照检查材料VIP免费
2024-12-03 11 -
派出所教导员述职述廉报告6篇VIP免费
2024-12-03 8 -
民主生活会对县委班子及其成员批评意见清单VIP免费
2024-12-03 50
分类:人力资源/企业管理
价格:5.9玖币
属性:101 页
大小:298KB
格式:DOC
时间:2024-12-15


渝公网安备50010702506394