ImageVerifierCode 换一换
格式:DOCX , 页数:103 ,大小:103.33KB ,
资源ID:4722796      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4722796.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(51CTO下载1Net+基础知识.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

51CTO下载1Net+基础知识.docx

1、51CTO下载1Net+基础知识.Net 基础知识 什么是面向对象面向对象 OO = 面向对象的分析 OOA + 面向对象的设计 OOD + 面向对象的编程 OOP ;通俗的解释就是万物皆对象,把所有的事物都看作一个个可以独立的对象 ( 单元 ) ,它们可以自己完成自己的功能,而不是像 C 那样分成一个个函数;现在纯正的 OO 语言主要是 java 和 C# , C+ 也支持 OO , C 是面向过程的。阐述面向接口、面向对象、面向方面编程的区别面向对象不好解释,可以理解为以一切元素都是对象,在设计时以对象为单位,考虑它的属性及方法。设计中采用了封装、继承、抽象的手法面向接口本身就是面向对象的

2、 ,无所谓区别,只不过面向接口的好处是耦合性低面向方面 Aspect-Oriented Programming (AOP) 就是大名鼎鼎的 AOP 。其实有点象 struts 里的拦截。举例:假设有在一个应用系统中,有一个共享的数据必须被并发同时访问,首先,将这个数据封装在数据对象中,称为 Data Class ,同时,将有多个访问类,专门用于在同一时刻访问这同一个数据对象。为了完成上述并发访问同一资源的功能,需要引入锁 Lock 的概念,也就是说,某个时刻,当有一个访问类访问这个数据对象时,这个数据对象必须上锁 Locked ,用完后就立即解锁 unLocked ,再供其它访问类访问。 面向

3、对象的思想主要包括什么?继承:子类拥有父类的所有数据和操作。封装:用抽象的数据类型将数据和基于数据的操作封装在一起,数据被保护在抽象数据类型内。多态:一个程序中同名的不同方法共存的情况。有两种形式的多态 重载与重写。 抽象类是否可以继承实体类 ?抽象类可以继承实体类,但是有个条件,条件是,实体类必须要有明确的构造函数。当类 T 只声明了私有实例构造函数时,则在 T 的程序文本外部,是否可以从 T 派生出新的类,是否可以直接创建 T 的任何实例。不可以,不可以C# 中有没有静态构造函数,如果有是做什么用的?有 . 静态构造函数用于初始化类。在创建第一个实例或引用任何静态成员之前,将自动调用静态构

4、造函数来初始化类。静态构造函数既没有访问修饰符,也没有参数。在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数来初始化类。 无法直接调用静态构造函数。在程序中,用户无法控制何时执行静态构造函数。静态构造函数的典型用途是:当类使用日志 文件时,将使用这种构造函数向日志文件中写入项。什么是 .net?.net 是一种平台和框架, .net 不是单纯的语言也不是单纯的工具, 它是从底层平台开始构建起来的一个整体框架请以图示方式解释 .net framework?VBC+C#JscriptCommon Language SpecificationXML WebservicesWeb For

5、msWindows FormsData and XMLBase Class LibraryCLRCLIVisual Studio .NET程序集与命名空间有什么不同?命名空间是用于避免命名冲突, 专用于组织代码,当代码要在其他某个应用程序中重用时,可以降低复杂性。程序集是重用代码的一种方式 验证控件不同 : 可以将相同命名空间中的类部署到不同的程序集中,也可以命名空间中的类部署到一个程序集中命名空间 程序集 有逻辑编译 时机制有物理编译 时机制不是运行时实体是运行时实体为源代码元素的名称提供逻辑结构为可执行文件的运行时提供物理结构什么是 WEB 控件?使用 WEB 控件有那些优势?WEB 控件

6、是能拖放在 WEB 页面上的控件WEB 控件分为:内部控件 , 列表控件 , 复杂控件 , WEB 控件优势 : Web 控件是对象 , 与对象一样, Web 控件拥有方法和属性,并且响应事件 一旦将 Web 控件包括在 Web 页中,就可以设置其属性并调用其方法 可以为 Web 控件编写服务器端代码以响应在客户端上发生的事件ASP 。 NET 中共有几种类型的控件?各有什么区别?WEB 控件分为:内部控件 , 列表控件 , 复杂控件 , 验证控件内部控件:内部控件的使用方法与 HTML 控件相同 , 它们映射到 HTML 元素并通过使用 runat = server 属性在服务器上执行 列表

7、控件:用于在 Web 页中创建数据列表复杂控件:当希望控件拥有复杂的功能或使用 HTML 元素无法创建的功能丰富的用户界面时,可以使用复杂控件验证控件:输入控件的数据需要进行准确性和取值范围方面的检查WEB 控件可以激发服务端事件,请谈谈服务端事件是怎么发生并解释其原理?自动传回是什么?为什么要使用自动传回。由于ASP 。NET 是Web 页面和服务端分离的,因此要产生了服务端事件.使用 _doPostBack 函数能够自动地把客户端的 javascript 事件转变为一个服务器端的事件, A 框架自动为我们处理有关的细节简化工作。使用自动传回的特性:在检测到一个特定用户动作时 , 自动传回能

8、够将这个页面传回服务器以处理事件.在web 控件发生事件时,客户端采用提交的形式将数据交回服务端,服务端先调用Page_Load 事件, 然后根据传回的状态信息自动调用服务端事件自动传回是当我们在点击客户端控件时,采用提交表单的形式将数据直接传回到务端。只有通过自动传回才能实现服务端事件的机制,如果没有自动回传机制就只能调用客户端事件,而不能调用服务端事件请解释 ASP.NET 中以什么方式进行数据验证。A 中有非空验证,比较验证,取值范围验证,正则表达式验证及客户自定义验证五大控件,另还有一个集中验证信息处理控件什么是 ASP.Net 中的用户控件用户控件是能够在其中放置标记和 Web 服务

9、器控件的容器。然后,可以将用户控件作为一个单元对待,为其定义属性和方法。用户控件以 。 ascx 为 扩展名 , 可以拖到不同的页面中调用 , 以节省代码 。 比如登陆可能在多个页面上有 , 就可以做成用户控件 , 但是有一个问题就是用户控件拖到不同级别的目录下后里面的 图片 等的相对路径会变得不准确 , 需要自已写方法调整 。问这样的问题 , 一般是迷惑你 。 因为新手还是分不清楚用户控件和服务器控件 ( 也称自定义控件 ) , 用户控件一般用在内容多为静态 , 或者少许会改变的情况下,用的比较大,类似 ASP 中的 include 。 但是功能要强大的多 。WEB 控件及 HTML 服务端

10、控件能否调用客户端方法?如果能,请解释如何调用?可以调用例如 :C#, Java 和 c+ 的特点,有什么相同的地方,不同的地方, C# 分别从 c+ 和 java 中吸取了他们那些优点?C# 看起来与 Java 有着惊人的相似 ; 它包括了诸如单一继承 , 界面 , 与 Java 几乎同样的语法 , 和编译成中间代码再运行的过程 . 但是 C# 与 Java 有着明显的不同 , 它借鉴了 Delphi 的一个特点 , 与 COM( 组件对象模型 ) 是直接集成。微软 c# 语言定义主要是从 C 和 C+ 继承而来的 , 而且语言中的许多元素也反映了这一点 .C# 在设计者从 C+ 继承的可选

11、选项方面比 Java 要广泛一些 ( 比如说 structs), 它还增加了自己新的特点 ( 比方说源代码版本定义 ).C# 从 Java 继承而来的特点 类:在 C# 中类的声明与 Java 很相似。特点看起来与 Java 相比没有变化 .布尔运算:条件表达式的结果是布尔数据类型 , 布尔数据类型是这种语言中独立的一种数据类型 . 从布尔类型到其他类型没有直接的转换过程 . 布尔常量 true 和 false 是 C# 中的关键字 .错误处理:如 Java 中那样 , 通过抛出和捕捉异常对象来管理错误处理过程 .内存管理:由底层 .NET 框架进行自动内存垃圾回收 .C# 从 C 和 C+

12、继承的特点 编译:程序直接编译成标准的二进制可执行形式 .结构体:一个 C# 的结构体与 C+ 的结构体是相似的 , 因为它能够包含数据声明和方法 . 但是 , 不象 C+,C# 结构体与类是不同的而且不支持继承 . 但是 , 与 Java 相同的是 , 一个结构体可以实现界面 .预编译: C# 中存在预编译指令支持条件编译 , 警告 , 错误报告和编译行控制 . #errorC# 独有的特点 中间代码:微软在用户选择何时 MSIL 应该编译成机器码的时候是留了很大的余地 . 微软公司很小心的声称 MSIL 不是解释性的 , 而是被编译成了机器码 . 它也明白许多 - 如果不是大多数的话 -

13、程序员认为 Java 程序要不可避免的比 C 编写的任何东西都要慢 . 而这种实现方式决定了基于 MSIL 的程序 ( 指的是用 C#,Visual Basic,Managed C+-C+ 的一个符合 CLS 的版本 - 等语言编写的程序 ) 将在性能上超过 解释性的 Java 代码 . 当然 , 这一点还需要得到事实证明 , 因为 C# 和其他生成 MSIL 的编译器还没有发布 . 但是 Java JIT 编译器的普遍存在使得 Java 和 C# 在性能上相对相同 . 象 C# 是编译语言而 Java 是解释性的 , 之类的声明只是商业技巧 .Java 的中间代码和 MSIL 都是中间的汇编

14、形式的语言 , 它们在运行时或其它的时候被编译成机器代码 .命名空间中的声明:当你创建一个程序的时候 , 你在一个命名空间里创建了一个或多个类 . 同在这个命名空间里 ( 在类的外面 ) 你还有可能声明界面 , 枚举类型和结构体 . 必须使用 using 关键字来引用其他命名空间的内容 .基本的数据类型: C# 拥有比 C,C+ 或者 Java 更广泛的数据类型 . 这些类型是 bool, byte, ubyte, short, ushort, int, uint, long, ulong, float, double, 和 decimal. 象 Java 一样 , 所有这些类型都有一个固定的

15、大小 . 又象 C 和 C+ 一样 , 每个数据类型都有有符号和无符号两种类型 . 与 Java 相同的是 , 一个字符变量包含的是一个 16 位的 Unicode 字符 .C# 新的数据类型是 decimal 数据类型 , 对于货币数据 , 它能存放 28 位 10 进制数字 .两个基本类:一个名叫 object 的类是所有其他类的基类 . 而一个名叫 string 的类也象 object 一样是这个语言的一部分 . 作为语言的一部分存在意味着编译器有可能使用它 - 无论何时你在程序中写入一句带引号的字符串 , 编译器会创建一个 string 对象来保存它 .参数传递:方法可以被声明接受可变

16、数目的参数 . 缺省的参数传递方法是对基本数据类型进行值传递 .ref 关键字可以用来强迫一个变量通过引用传递 , 这使得一个变量可以接受一个返回值 .out 关键字也能声明引用传递过程 , 与 ref 不同的地方是 , 它指明这个参数并不需要初始值 .与 COM 的集成: C# 对 Windows 程序最大的卖点可能就是它与 COM 的无缝集成了 ,COM 就是微软的 Win32 组件技术 . 实际上 , 最终有可能在任何 .NET 语言里编写 COM 客户和服务器端 .C# 编写的类可以子类化一个以存在的 COM 组件 ; 生成的类也能被作为一个 COM 组件使用 , 然后又能使用 , 比

17、方说 , JScript 语言子类化它从而得到第三个 COM 组件 . 这种现象的结果是导致了一个运行环境的产生 , 在这个环境里的组件是网络服务 , 可用用任何 .NET 语言子类化 .索引下标:一个索引与属性除了不使用属性名来引用类成员而是用一个方括号中的数字来匿名引用 ( 就象用数组下标一样 ) 以外是相似的 .代理和反馈:一个代理对象包括了访问一个特定对象的特定方法所需的信息 . 只要把它当成一个聪明的方法指针就行了 . 代理对象可以被移动到另一个地方 , 然后可以通过访问它来对已存在的方法进行类型安全的调用 . 一个反馈方法是代理的特例 .event 关键字用在将在事件发生的时候被当

18、成代理调用的方法声明中 .在 C 中, string str = null 与 string str = “” 的区别。string str = null 是不给他分配内存空间 , 而 string str = 给它分配长度为空字符串的内存空怎样理解静态变量?静态成员和非静态成员的区别?静态变量属于类,而不属于对象;并对所有对象所享;静态成员在加类的时候就被加载 。静态成员和非静态成员的区别?静态变量使用 static 修饰符进行声明,静态成员在加类的时候就被加载(在类被实例化时创建,哪个对),通过类进行访问不带有static 修饰符声明的变量称做非静态变量,在对象被实例化时创建,通过对象进行

19、访问一个类的所有实例的同一静态变量都是同一个值,同一个类的不同实例的同一非静态变量可以是不同的值静态函数的实现里不能使用非静态成员,如非静态变量、非静态函数等DataReader 和 DataSet 的异同DataReader 和DataSet 最大的区别在于,DataReader 使用时始终占用SqlConnection ,在线操作数据库,任何对SqlConnection 的操作都会引发DataReader 的异常,因为DataReader 每次只在内存中加载一条 数据,所以占用的内存是很小的,因为DataReader 的特殊性和高性能。所以DataReader 是只进 的,你读了第一条后就

20、不能再去读取第一条了。DataSet 则是将数据一次性加载在内存中。抛弃数据库连接,读取完毕即放弃数据库连接,因为DataSet 将数据全部加载在内存中。所以比较消耗内存,但是确比DataReader 要灵活,可以动态的添加行,列,数据 。对数据库进行回传更新 操作。简述静态类和静态成员 静态类中的成员都必须是静态的。静态类无构造方法,并且是密封类无法被继承。 静态成员访问时只能通过类名来访问,不能通过对象访问(和 JAVA 有区别), this 也无法访问静态成员。描述接口的作用 充当类的功能界面,接口里的成员属于抽象描述,必须通过类的实现才能使用。如:某个项目有多个模块组成,每个模块由一个

21、开发者完成,开发者只需编写完模块功能实现后,留下的接口供其他人使用。其他人在程序中,使用接口时,只需知道接口的功能,不了解如何实现。当功能模块无法满足需要或功能模块的需求变更时,程序员只需将该功能模块的实现代码进行修改和扩充,而其他调用接口的程序无须改动。接口的这种应用模式成为 brige 模式(即意图和实现分离 )接口反映了面向对象的多态特征,即通过相同方法得到不同实现。接口也反映了面向对象的封装特征,使用者可以不清楚接口成员的实现细节。注意:因为接口成员默认的访问权限是 public ,所以在实现接口时,类的成员必须为 public ,且方法名和参数必须一致。描述抽象类 用 abstrac

22、t 修饰的类。抽象类可以包含实现的成员。未实现的成员隐含的是 virtual 属性,子类实现时必须用 override 关键字。请解释接口的显式实现有什么意义?接口是其他类型为确保它们支持某些操作而实现的引用类型。接口从不直接创建而且没有实际的表示形式,其他类型必须转换为接口类型。一个接口定义一个协定。实现接口的类或结构必须遵守其协定。接口可以包含方法、属性、索引器和事件作为成员。在项目中为什么使用接口?接口的好处是什么?什么是面向接口开发?接口只是一种约束。使用 interface 去定义某些特定的功能,为的是不要将代码写死在自定义类里,以便在系统开发、事后维护、功能扩充 上更有扩展性。接口

23、用于描述一组类的公共方法 / 公共属性 . 它不实现任何的方法或属性,只是告诉继承它的类至少要实现哪些功能 , 继承它的类可以增加自己的方法 . 使用接口可以使继承它的类: 命名统一 / 规范 , 易于维护 。提供永远的接口。 当类增加时,现有接口方法能够满足继承类中的大多数方法,没必要重新给新类设计一组方法,也节省了代码,提高了开发效率。面向接口开发的好处有结构清晰 ,类间通信简单易懂 ,扩展性好 ,提高复用性 等等。面向接口开发就是指面向抽象协议 编程,实现者在实现时要严格按协议来办。接口和类有什么异同。不同点: 1 、不能直接实例化 接口。2 、接口 只包含方法或属性的声明 , 不包含方

24、法的实现。3 、接口可以多继承 ,类只能单继承。4 、类有分部类 的概念,定义可在不同的源文件之间进行拆分。5 、表达的含义不同,接口主要定义一种规范 ,统一调用方法,也就是规范类,约束类,类是方法功能的实现和集合相同点: 1 、接口、类和结构都可以从多个接口继承。2 、接口类似于抽象基类:继承接口的任何非抽象类型都必须实现接口的所有成员。3 、接口和类都可以包含事件、索引器、方法和属性。您在什么情况下会用到虚方法或抽象类,接口?如果某个方法可能性在派生类中会被重写。这时就将该方法写为虚方法。抽象类:是一个类型,与派生类之间的关系是一个“ ISA ”的关系。用来做基类,抽象类不能创建对象,类中

25、包括抽象方法和实例方法。接口:是设计一个规范,描述了 Can do ;与实现类之间是中” LINE A 的关系, C# 中接口不能包含字段访问修饰符。对比抽象基类和接口的使用 抽象类能有具体实现,而接口只定义行为规范,不能有具体实现。一个类只能继承一个父类,但能实现多个接口。 C# 中的接口和抽象类有什么异同。你选择使用接口和抽象类的依据是什么?1 、继承:接口支持多继承 ;抽象类不能实现多继承 。2 、表达的概念: 接口用于规范 ,抽象类用于共性 。 抽象类是一类事物的高度聚合 ,那么对于继承抽象类的子类来说,对于抽象类来说,属于 是 的关系;而接口是定义行为规范,因此对于实现接口的子类来说

26、,相对于接口来说,是 行为需要按照接口来完成 。3 、方法实现:对抽象类中的方法,即可以给出实现部分,也可以不给出;而接口的方法(抽象规则)都不能给出实现部分,接口中方法不能加修饰符 。4 、子类重写:继承类对于两者所涉及方法的实现 是不同的。继承类对于抽象类所定义的抽象方法,可以不用重写 ,也就是说,可以延用抽象类的方法;而对于接口类所定义的方法或者属性来说,在继承类中必须重写 ,给出相应的方法和属性实现。5 、新增方法的影响:在抽象类中,新增一个方法的话,继承类中可以不用作任何处理;而对于接口来说,则需要修改继承类,提供新定义的方法。6 、接口可以作用于值类型(枚举可以实现接口)和引用类型

27、 ;抽象类只能作用于引用类型。7 、接口不能包含字段和已实现的方法,接口只包含方法、属性、索引器、事件的签名;抽象类可以定义字段、属性、包含有实现的方法。8 、接口可以用于支持回调( CallBack );抽象类不能实现回调,因为继承不支持。 如下给出两者的简单对比表格。 接口抽象类多继承支持不支持类型限制没有有,只能是引用类型方法实现继承类型中必须给出方法实现继承类中可以不给出扩展性比较麻烦相对比较灵活多层继承比较麻烦,需要借助虚函数比较灵活如何选择:1 、看是否需要多继承,如果需要就只能使用接口 2 、看你在累里定义的方法是否需要有实现的代码,如果要,就使用抽象类3 、使不同的类型有共同的

28、特性的时候使用接口,因为它支持多继承,只想从一个类型继承出不同的行为的子类的时候使用抽象类,可以在基类里有代码实现。 从实现接口和现实抽象类的方法来看,接口是死的,抽象类是活的,当然实现接口的类是活的。结构和类的区别简单的说成class 可以被实例化, 属于引用类型struct 属于值类型,1 )、类型,空间分配。结构是值类 型,是分配在内存的栈上的. 类时引用类型,, 是分配在内存的堆上的。结构实例化可以不用new ,即使用new 操作也不会在堆里分配内存。作参数是按值传递,类时引用传递,变量用完 自动解除内存分配,类需要垃圾回收期2 )、基类。 结构继承自 System.ValueType

29、 类,因此不具多态性。但是注意, System.ValueType 是个引用类型。类继承自 System.Object 类;3 )、职能。 struct 常用于存储数据 ;而 class 表现为行为4) 、结构没有类的特性 ,不支持继承。但可以实现接口。5 )、结构无法声明无参的构造函数 ,但可以声明有参的构造函数6 )、结构的实例成员不能直接赋初值 ,必须通过构造函数来赋值 ,但静态成员可以直接赋初值7 )、无抽象结构,但有抽象类( abstract )8 )、 class 可以声明 protected 成员、 virtual 成员、 sealed 成员和 override 成员;而 str

30、uct 不可以,但是值得注意的是, struct 可以重载 System.Object 的 3 个虚方法, Equals() 、 ToString() 和 GetHashTable() 。接口与继承的区别?什么时候使用接口,什么时候使用继承? (1 ) 接口定义一个类型需要实现的方法,属性,索引和事件,包括可能的参数类型和返回值类型,而把具体的实现交由相应的类或结构来做,从而为组件提供多态能力 。(2 ) 继承常用于在一个现有父类的基础上的功能扩展 ,往往是我们将几个类中相同的成员提取出来 放在父类中实现,然后在各自的子类中加以继承。(3 ) 接口可以实现多接口继承 ,而继承只能实现单继承 。

31、(4 ) 实现继承可继承父类型的实现,由于接口中没有定义方法的实现,因此必须实现继承后该接口的所有方法。(5 ) 为父类型添加方法可能不影响使用继承自该类型实现的用户,而为接口添加方法导致用户必须为新方法添加实现。(6 ) 当派生类和基类是is-a 的关系是使用 继承 ,典型案例 苹果 is-a 水果 ,存在can-do 的关系时使用 接口重载 (Overload ) 和覆写 (Override) 的区别简单的说,一个是同一个函数的几种形式, 一个是重写父类函数,重载:当类包含两个名称相同但签名不同 ( 方法名相同 , 参数列表不相同 ) 的方法时发生方法重载。用方法重载来提供在语义上完成相同而功能不同的方法。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1