【Asp.net精品源码栏目提醒】:网学会员,鉴于大家对Asp.net精品源码十分关注,论文会员在此为大家搜集整理了“【精品】Book3 - 其它资料”一文,供大家参考学习!
什么是面向对象 面向对象OO 面向对象的分析OOA 面向对象的设计OOD 面向对象的编程OOP; 通俗的解释就是万物皆对象,把所有的事物都看作一个个可以独立的对象单元,它们可以自己完 现在纯正的OO语言主要是java和C,C也支持OO,C是面向过程的。
阐述面向接口、面向对象、面向方面编程的区别面向对象不好解释,可以理解为以一切元素都是对象,在设计时以对象为单位,考虑它的属性及方法。
设计面向接口本身就是面向对象的,无所谓区别,只不过面向接口的好处是耦合性低面向方面Aspect-Oriented Programming AOP就是大名鼎鼎的AOP。
其实有点象struts里的拦截。
举例:假设有在一个应用系统中,有一个共享的数据必须被并发同时访问,首先,将这个数据封为了完成上述并发访问同一资源的功能,需要引入锁Lock的概念,也就是说,某个时刻,当有一个访问类访面向对象的思想主要包括什么?继承:子类拥有父类的所有数据和操作。
封装:用抽象的数据类型将数据和基于数据的操作封装在一起,数据被保护在抽象数据类型内。
多态:一个程序中同名的不同方法共存的情况。
有两种形式的多态–重载与重写。
抽象类是否可以继承实体类抽象类可以继承实体类,但是有个条件,条件是,实体类必须要有明确的构造函数。
当类T只声明了私有实例构造函数时,则在T的程序文本外部,是否可以从T派生出新的类,是否可以直接创不可以,不可以C中有没有静态构造函数,如果有是做什么用的? 有. 静态构造函数用于初始化类。
在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数来什么是.net .net是一种平台和框架 .net 不是单纯的语言也不是单纯的工具它是从底层平台开始构建起来的一个请以图示方式解释.net frameworkVB C C Jscript … Vis ual St udi o .N ET Common Language SpecificationXML Web Webservices Forms Windows Forms Data and XML Base Class Library程序集与命名空间有什么不同? 命名空间是用于避免命名冲突,专用于组织代码,当代码要在其他某个应用程序中重用时,可以 程序集是重用代码的一种方式验证控件不同: 可以将相同命名空间中的类部署到不同的程序集中,也可以命名空间中的类部署到一个程序集中命名空间 程序集有逻辑编 有物理编译时机制 译时机制不是运行 是运行时时实体 实体为源代码 为可执行元素的名 文件的运称提供逻 行时提供辑结构 物理结构什么是WEB控件?使用WEB控件有那些优势? WEB控件是能拖放在WEB页面上的控件 WEB控件分为:内部控件 列表控件 复杂控件WEB控件优势: l Web 控件是对象与对象一样,Web 控件拥有方法和属性,并且响应事件 l 一旦将 Web 控件包括在 Web 页中,就可以设置其属性并调用其方法 l 可以为 Web 控件编写服务器端代码以响应在客户端上发生的事件ASP。
NET中共有几种类型的控件?各有什么区别? WEB控件分为:内部控件 列表控件 复杂控件 验证控件 内部控件:内部控件的使用方法与 HTML 控件相同它们映射到 HTML 元素并通过使用 runat quots 列表控件:用于在 Web 页中创建数据列表 复杂控件:当希望控件拥有复杂的功能或使用 HTML 元素无法创建的功能丰富的用户界面时,可 验证控件:输入控件的数据需要进行准确性和取值范围方面的检查WEB控件可以激发服务端事件,请谈谈服务端事件是怎么发生并解释其原理?自动传回是什么?为什么要使 由于ASP。
NET是Web页面和服务端分离的,因此要产生了服务端事件. 使用_doPostBack函数能够自动地把客户端的javascript事件转变为一个服务器端的事件,
Asp.net框架自动为我们处理有关的细节简化工作。
使用自动传回的特性:在检测到一个特定用户动作时自动传回能够将这个页面传回服务器以处理事件. 在web控件发生事件时,客户端采用提交的形式将数据交回服务端,服务端先调用Page_Load事件请解释
ASP.NET中以什么方式进行数据验证。
Aps.net 中有非空验证,比较验证,取值范围验证,正则表达式验证及客户自定义验证五大控件什么是
ASP.Net中的用户控件用户控件是能够在其中放置标记和 Web 服务器控件的容器。
然后,可以将用户控件作为一个单元对待,为其用户控件以。
ascx为扩展名,可以拖到不同的页面中调用,以节省代码。
比如登陆可能在多个页问这样的问题,一般是迷惑你。
因为新手还是分不清楚用户控件和服务器控件也称自定义控件,用户控件一WEB控件及HTML服务端控件能否调用客户端方法?如果能,请解释如何调用?可以调用例如:ltasp:TextBox idquotTextBox1quot onclickquotclientfunctionquot runatquotserverquotgtlt/asp:TextBoxgtltINPUT idquotButton2quot valuequotButtonquot namequotButton2quotrunatquotserverquot onclickquotclientfunctionquotgtC Java 和 c的特点,有什么相同的地方,不同的地方, C分别从c和java中吸取了他们那些优点? C看起来与Java有着惊人的相似它包括了诸如单一继承界面与Java几乎同样的语法和编译成中间代码再 微软c语言定义主要是从C和C继承而来的而且语言中的许多元素也反映了这一点.C在设计者从C C从Java继承而来的特点 类:在C中类的声明与Java很相似。
特点看起来与Java相比没有变化. 布尔运算:条件表达式的结果是布尔数据类型布尔数据类型是这种语言中独立的一种数据类型.从布尔类 错误处理:如Java中那样通过抛出和捕捉异常对象来管理错误处理过程. 内存管理:由底层.NET框架进行自动内存垃圾回收. C从C和C继承的特点 编译:程序直接编译成标准的二进制可执行形式. 结构体:一个C的结构体与C的结构体是相似的因为它能够包含数据声明和方法.但是不象CC结 预编译:C中存在预编译指令支持条件编译警告错误报告和编译行控制. error C独有的特点 中间代码:微软在用户选择何时MSIL应该编译成机器码的时候是留了很大的余地.微软公司很小心的声称 命名空间中的声明:当你创建一个程序的时候你在一个命名空间里创建了一个或多个类.同在这个命名空 基本的数据类型:C拥有比CC或者Java更广泛的数据类型.这些类型是bool byte ubyte short ushort i 两个基本类:一个名叫object的类是所有其他类的基类.而一个名叫string的类也象object一样是这个语言的 参数传递:方法可以被声明接受可变数目的参数.缺省的参数传递方法是对基本数据类型进行值传递.ref关 与COM 的集成:C对Windows程序最大的卖点可能就是它与COM的无缝集成了COM就是微软的Win32 索引下标:一个索引与属性除了不使用属性名来引用类成员而是用一个方括号中的数字来匿名引用就象 代理和反馈:一个代理对象包括了访问一个特定对象的特定方法所需的信息.只要把它当成一个聪明的方在C#中,string str null与string str “”的区别。
string str null是不给他分配内存空间,而string str quotquot给它分配长度为空字符串的内存空怎样理解静态变量?静态成员和非静态成员的区别?静态变量属于类,而不属于对象;并对所有对象所享;静态成员在加类的时候就被加载。
静态成员和非静态成员的区别? 静态变量使用 static 修饰符进行声明,静态成员在加类的时候就被加载(在类被实例化时创建 不带有static 修饰符声明的变量称做非静态变量,在对象被实例化时创建,通过对象进行访问 一个类的所有实例的同一静态变量都是同一个值,同一个类的不同实例的同一非静态变量可以是 静态函数的实现里不能使用非静态成员,如非静态变量、非静态函数等DataReader和DataSet的异同DataReader和DataSet最大的区别在于,DataReader使用时始终占用SqlConnection,在线操作数据库,任何DataSet则是将数据一次性加载在内存中。
抛弃数据库连接,读取完毕即放弃数据库连接,因为DataSet将数简述静态类和静态成员 静态类中的成员都必须是静态的。
静态类无构造方法,并且是密封类无法被继承。
静态成员访问时只能通过类名来访问,不能通过对象访问(和JAVA有区别),this也无法访问静描述接口的作用 充当类的功能界面,接口里的成员属于抽象描述,必须通过类的实现才能使用。
如:某个项目有多个模 当功能模块无法满足需要或功能模块的需求变更时,程序员只需将该功能模块的实现代码进行修改和扩 接口反映了面向对象的多态特征,即通过相同方法得到不同实现。
接口也反映了面向对象的封装特征,注意:因为接口成员默认的访问权限是public,所以在实现接口时,类的成员必须为public,且方法名和参数描述抽象类 用abstract修饰的类。
抽象类可以包含实现的成员。
未实现的成员隐含的是virtual属性,子类实现请解释接口的显式实现有什么意义? 接口是其他类型为确保它们支持某些操作而实现的引用类型。
接口从不直接创建而且没有实际的表示形式在项目中为什么使用接口?接口的好处是什么?什么是面向接口开发? 接口只是一种约束。
使用 interface 去定义某些特定的功能,为的是不要将代码写死在自定义类里 接口用于描述一组类的公共方法/公共属性. 它不实现任何的方法或属性,只是告诉继承它的类至 面向接口开发的好处有结构清晰,类间通信简单易懂,扩展性好,提高复用性等等。
面向接口开发就是指面向抽象协议编程,实现者在实现时要严格按协议来办。
接口和类有什么异同。
不同点:1、不能直接实例化接口。
2、接口只包含方法或属性的声明,不包含方法的实现。
3、接口可以多继承,类只能单继承。
4、类有分部类的概念,定义可在不同的源文件之间进行拆分。
5、表达的含义不同,接口主要定义一种规范,统一调用方法,也就是规范类,约束类,类是方法功能的实现相同点:1、接口、类和结构都可以从多个接口继承。
2、接口类似于抽象基类:继承接口的任何非抽象类型都必须实现接口的所有成员。
3、接口和类都可以包含事件、索引器、方法和属性。
您在什么情况下会用到虚方法或抽象类,接口? 如果某个方法可能性在派生类中会被重写。
这时就将该方法写为虚方法。
抽象类:是一个类型,与派生类之间的关系是一个“ISA”的关系。
用来做基类,抽象类不能创建 接口:是设计一个规范,描述了Can do ;与实现类之间是中”LINE A 的关系,C中接口不能包对比抽象基类和接口的使用 抽象类能有具体实现,而接口只定义行为规范,不能有具体实现。
一个类只能继承一个父类,但C中的接口和抽象类有什么异同。
你选择使用接口和抽象类的依据是什么? 1、继承:接口支持多继承;抽象类不能实现多继承。
2、表达的概念:接口用于规范,抽象类用于共性。
抽象类是一类事物的高度聚合,那么对于继承 3、方法实现:对抽象类中的方法,即可以给出实现部分,也可以不给出;而接口的方法(抽象规 4、子类重写:继承类对于两者所涉及方法的实现是不同的。
继承类对于抽象类所定义的抽象方法 5、新增方法的影响:在抽象类中,新增一个方法的话,继承类中可以不用作任何处理;而对于接 6、接口可以作用于值类型(枚举可以实现接口)和引用类型;抽象类只能作用于引用类型。
7、接口不能包含字段和已实现的方法,接口只包含方法、属性、索引器、事件的签名;抽象类可 8、接口可以用于支持回调(CallBack);抽象类不能实现回调,因为继承不支持。
如下给出两者的简单对比表格。
接口 抽象类多继承 支持 不支持类型限制 没有 有,只能 是引用类方法实现 继承类型 继承类中 中必须给 可以不给 出方法实 出扩展性 比较麻烦 相对比较 灵活多层继承 比较麻 比较灵活 烦,需要 借助虚函如何选择:1、看是否需要多继承,如果需要就只能使用接口2、看你在累里定义的方法是否需要有实现的代码,如果要,就使用抽象类3、使不同的类型有共同的特性的时候使用接口,因为它支持多继承,只想从一个类型继承出不同的行为的子从实现接口和现实抽象类的方法来看,接口是死的,抽象类是活的,当然实现接口的类是活的。
结构和类的区别简单的说成class可以被实例化属于引用类型struct属于值类型1)、类型,空间分配。
结构是值类型,是分配在内存的栈上的.类时引用类型,是分配在内存的堆上的。
结2)、基类。
结构继承自System.ValueType类,因此不具多态性。
但是注意,System.ValueType是个引用类型。
3)、职能。
struct常用于存储数据;而class表现为行为4、结构没有类的特性,不支持继承。
但可以实现接口。
5)、结构无法声明无参的构造函数,但可以声明有参的构造函数6)、结构的实例成员不能直接赋初值,必须通过构造函数来赋值,但静态成员可以直接赋初值7)、无抽象结构,但有抽象类(abstract)8)、class 可以声明protected成员、virtual成员、sealed成员和override成员;而struct不可以,但是值得注意的接口与继承的区别?什么时候使用接口,什么时候使用继承?(1) 接口定义一个类型需要实现的方法,属性,索引和事件,包括可能的参数类型和返回值类型,而把具(2) 继承常用于在一个现有父类的基础上的功能扩展,往往是我们将几个类中相同的成员提取出来放在父(3) 接口可以实现多接口继承,而继承只能实现单继承。
(4) 实现继承可继承父类型的实现,由于接口中没有定义方法的实现,因此必须实现继承后该接口的所有(5) 为父类型添加方法可能不影响使用继承自该类型实现的用户,而为接口添加方法导致用户必须为新方(6) 当派生类和基类是is-a的关系是使用quot继承quot,典型案例quot苹果 is-a 水果quot,存在can-do的关系时使用重载Overload 和覆写Override的区别 简单的说,一个是同一个函数的几种形式一个是重写父类函数, 重载:当类包含两个名称相同但签名不同方法名相同参数列表不相同的方法时发生方法重载。
覆写:在类的继承中使用,通过覆写子类方法可以改变父类虚方法的实现。
区别: 1、方法的覆盖是子类和父类之间的关系,是垂直关系;方法的重载是同一个类中方法之间的关系 2、覆盖只能由一个方法,或只能由一对方法产生关系;方法的重载是多个方法之间的关系。
3、覆盖要求参数列表相同;重载要求参数列表不同。
4、覆盖关系中,调用那个方法体,是根据对象的类型(对象对应存储空间类型)来决定;重载关lt gt 和 lt gt 有什么区别?lt gt表示绑定的数据源lt gt是服务器端代码块值类型和引用类型的区别?写出C的样例代码。
值类型包括简单类型、结构体类型和枚举类型,引用类型包括自定义类、数组、接口、委托等1、赋值方式:将一个值类型变量赋给另一个值类型变量时,将复制包含的值。
这与引用类型变量的赋值不同2、派生:值类型不可能派生出新的类型,所有的值类型均隐式派生自 System.ValueType。
但与引用类型相同3、null:与引用类型不同,值类型不可能包含 null 值。
然而,可空类型功能允许将 null 赋给值类型。
4、每种值类型均有一个隐式的默认构造函数来初始化该类型的默认值。
值类型主要由两类组成:结构、枚举结构分为以下几类:Numeric(数值)类型、整型、浮点型、decimal、bool、用户定义的结构。
引用类型的变量又称为对象,可存储对实际数据的引用。
声明引用类型的关键字:class、interface、delegate、5、值类型存贮在栈中,而引用类型存贮在动态的堆中,栈是先进先出的有系统管理的空间,而堆是由应用程例:quotanullquot的意思是:a的引用置为空但此时StringBuilder的堆空间并没有被释放,因此在此之后,输出b时,using Systemusing System.Textclass EventDel static void Mainstring args StringBuilder anew StringBuilder//将StringBuilder的一个首地址传给a StringBuilder ba //将StringBuilder的一个首地址传给b b.Appendquotmxhquot Console.WriteLinea anull Console.WriteLineb 输出结果:mxhmxh请按任意键继续. . .C中的委托是什么?如何理解委托?简单的说:委托是一种方法容器,里面可以装载若干个具有相同签名的方法引用地址,那么调用委托,就相委托可以看做一种新的对象类型,具有面向对象的特点,定义时可签名接收参数,委托实例化时,可以把方例:例: public //定义委托签名接收两个参数 static void Mainstring args MyDel mdnew My//定义委托对象,其引用变量指向参数中的方法 stri //调用委托对象,传递所指方法的参数 委托类似于 C或 C中的函数指针。
但不同的是委托是面向对象、类型安全的。
委托允许将方法作为参数进行传递。
委托可用于定义回调方法。
委托可以链接在一起;创建多个对象,使用“”累加到同一个委托对象上的引用上,例如,可以对一个public del //定义委托签名接收两个参数static void Mainstring args MyDel mdnew MyDel方法1 //委托对象,其引用变量指向参数中的方法 mdnew MyDel方法2 mdnew MyDel方法3 string //调用委托对象,传递所指方法的参数 方法不需要与委托签名精确匹配。
有关更多信息,请参见协变和逆变。
C 2。
0 版引入了匿名方法的概念,此类方法允许将代码块作为参数传递,以代替单独定义的方法。
如:using Systemclass Name private string pName //定义委托类型 public delegate void myEventHandlerobject sender NameEventArgs e //定义Get事件 public event myEventHandler Get internal string Text get return this.pName set //-----------------------------------------------------------2 this.pNamevalue this.OnGetnew NameEventArgsquotText属性被更改了quot void OnGetNameEventArgs e//----------------------------------------3 th //触发事件 public override string ToString return quotName类的对象quot public //自定义事件信息类 string pArgs public NameEventArgsstring s pArgs s public override string ToString return pArgs class EventDel static void Mainstring args Name myname new Name myname.Get new Name.myEventHandlermyname_get //--------------4 myname.Text quot张三quot//--------------------------------------------1 //用于订阅事件的myname_get方法 static void myname_getobject sender Name.NameEventArgs e //---------5 //输出事件信息,和事件发布者的属性 Console.WriteLinequot事件信息:0quot e.ToString Console.WriteLinequot事件发布者:0quot sender.ToString Console.WriteLinequot你输入的名字是:0quotNamesender.Text 结果:事件信息:Text属性被更改了事件发布者:Name类的对象你输入的名字是:张三请按任意键继续. . .使用匿名方法,直接将方法体的代码和委托对象关联而不需要单独定义此方法class EventDel static void Mainstring args Name mynamenew Name myname.Get delegateobject sender Name.NameEventArgs e 也可以用Lambda表达式把delegate隐藏class EventDel static void Main.
上一篇:
【精品】net面试题
下一篇:
bc80e7a0-d1f2-4595-b21d-01a76798e87a