C编程基础练习题与_第1页
C编程基础练习题与_第2页
C编程基础练习题与_第3页
C编程基础练习题与_第4页
C编程基础练习题与_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

面向对象的思想主要包含什么?答:个人认为一各程序语言要成为真切的面向对象的程序设计语言,它一定符合以下条件:1抽象(abstraction)—抽象能够有效地管理一个问题的复杂性,其作法是区分出与该问题有关的一组对象.2封装(Encapsulation)—封装是指将一个抽象的内部实现隐蔽在特定的对象以内.3多态(polymorphism)—多态会供给相同方法的多种操作方法的多种操作实作.比方,不同的对象都会拥有一个Save方法,可是每一个Save方法会履行不一样的操作.4继承(inheritance)—VisualC#2005最令人愉悦之处就是其继承特征.vc#2005则提供了真切的方法继承,所以您能够重复使用一个类的实例.什么是中的用户控件自己着手作自己的控件来取代.NET供给的控件。这类控件就是用户控件。后缀为.ascx什么叫应用程序域?什么是受管制的代码?什么是强种类系统?什么是装箱和拆箱?什么是重载?什么是多态?CTS、CLS和CLR分别作何解说?应用程序域:应用程序域(平常是AppDomain)是用于间隔应用程序的虚假进度。在同一个应用程序作用域中创立的所有对象(换句话说,从该应用程序的进口点开始沿着对象激活序列的任何地方)都在同一个应用程序域中创立。多个应用程序域能够存在于一个操作系统进程中,使它们成为间隔应用程序的简易方式。操作系统进度经过使用各不相同的内存地点空间来供给间隔。尽管它是有效的,但也是代价昂贵的,并且不可以达到大型Web服务器所需要的数目。与其对比,公共语言运转时经过管理在应用程序域中运转的代码的内存使用来强迫进行应用程序间隔。这样就保证它不会接见应用程序域以外的内存。需要注意的是,只有种类安全的代码才能以这类方式管理(当在应用程序域中加载不安全代码时,运转时不可以保证间隔)。理解应用程序域:应用程序域是.NET运转库的逻辑进度表示,操作系统进度能够包含多个应用程序域。应用程序域拥有以下长处:1、隐蔽了进度详尽的操作系统信息。从而同意把.NET放在不一样的操作系统下。、供给了间隔。即便运转在同一个进度中的属于不一样域的应用程序也不可以直接共享全局数据、静态数据或其余资源。所以,一个应用程序域失败了,也不会影响到同一个进度中的其余应用程序域。、对于不需要昂贵的IPC系统的进度,应用程序域同意.NET运转库优化运转在这类进度中的应用程序间的通讯。因为应用程序域是被间隔的,所有.NET对象都会被界定在创立它的应用程序域内。假如跨应用程序域的界限传达对象引用,该被引用对象就被称为远程对象。装箱和拆箱在C#中的有两各样类的变量:值种类和引用种类。当值种类和引用种类互相转变时,会发生装箱和拆箱的过程。这里有一点要申明:经过拆箱或装箱的对象会多出它自己一份拷贝。它和它的拷贝不在一个储存地区。这也是值种类和引用种类的差异所在。值种类老是在栈中,而引用种类总是在托管堆中。(目前也支持了装箱和拆箱,可是我目前不知道能否和C#相同)。为了进一步理解看下边例子:structPoint{publicintx;publicinty;}staticvoidMain( ){Pointp;=10;=20;Objecto=p;将值种类从栈中拷贝到堆中。/************************************************************************/从托管堆中将对象拷贝到栈中。/************************************************************************/Pointp2=(Point)p;(“:="++

:=

“+;=16;=34;(“:="++

:=

“+;(“:="++

:=

“+;}输出结果为::=10;=20;:=10;=20;:=16;=34;可知,变量经过拆箱/装箱后,获取是自己的另一份拷贝。装箱和撤消装箱的看法是C#的种类系统的核心。它在“值种类”和“引用种类”之间的架起了一座桥梁,使得任何“值种类”的值都能够变换为object种类的值,反过来变换也可以。装箱和撤消装箱使我们能够一致地来观察种类系统,此中任何种类的值最后都能够按对象处理多态一.形象理解两条理解的原则:(1)一个派生类对象能够被申明成一个基类,或许是一个基类指针能够指向一个派生类对象:MainMainET联合Java和COM解决方案二者长处来解决互操作性问题。近似于

COM定义的标准二进制格式,

.NET定义了一个称为通用种类系统

CommonTypeSystem(CTS)的种类标准。这个类型系统不仅实现了

COM的变量兼容种类,并且还定义了经过用户自定义种类的方式来进行种类扩展。任何以

.NET平台作为目标的语言一定建立它的数据种类与

CTS的种类间的映照。所有.NET语言共享这一种类系统,实现它们之间无缝的互操作。该方案还供给了语言之间的继承性。比方,用户能够在中派生一个由C#编写的类。很明显,编程语言的差异不不过在于种类。比方,一些语言支持多继承性,一些语言支持无符号数据种类,一些语言支持运算符重载。用户应认识到这一点,所以.NET经过定义公共语言规范(CLS:CommonLanguageSpecification)

,限制了由这些不一样引起的互操作性问题。CLS拟定了一种以

.NET平台为目标的语言所一定支持的最小特色,

以及该语言与其余

.NET语言之间实现互操作性所需要的齐备特色。认识到这点很重要,这里谈论的特色问题已不不过是语言间的简单语法差异。比方,CLS其实不去关怀一种语言用什么重点字实现继承,不过关怀该语言如何支持继承。CLS是CTS的一个子集。这就意味着一种语言特色可能符合CTS标准,但又高出CLS的范围。例如:C#支持无符号数字种类,该特色能经过CTS的测试,但CLS却不过鉴识符号数字种类。因此,假如用户在一个组件中使用C#的无符号种类,即可能不可以与不使用无符号种类的语言(如设计的.NET组件实现互操作。这里用的是“可能不”,而不是“不可以能”,因为这一问题实际依靠于对non-CLS-compliant项的可见性。事实上,CLS规则只合用于或部分合用于那些与其余组件存在联系的组件中的种类。实质上,用户能够安全实现含私有组件的项目,而该组件使用了用户所选择使用的.NET语言的所有功能,且无需恪守CLS的规范。另一方面,假如用户需要.NET语言的互操作性,那么用户的组件中的公共项一定完好符合CLS规范。让我们来看下边的C#代码:publicclassFoo{privateuintA=4;publicuintB=5;publiclongGetA( ){returnA;}}最后一个

C是公共语言运转库

CommonLanguageRuntime(CLR)

。简单地说,

CLR是CTS的实现,也就是说,

CLR是应用程序的履行引擎和功能齐备的类库,该类库严格依照

CTS规范实现。作为程序履行引擎,

CLR负责安全地载入和运转用户程序代码,

包含对不用对象的垃圾回收和安全检查。在CLR监控之下运转的代码,称为托管代码(managedcode)。作为类库,CLR供给上百个可用的实用种类,而这些种类可经过继承进行扩展。对于文件I/O、创立对话框、启动线程等种类——基本上能使用WindowsAPI来达成的操作,都可由其达成。让我们正确对待“3C”。开发人员在建立自己的分布式应用程序时,因为用户在编程时将直接面对CLR,应将主要精力放在学习认识CLR上,而不是CTS和CLS。而对于希望以.NET平台为目标的语言和工具开发商来说,就需要深入理解CTS和CLS。互操作性组件是分布式应用的关键,所以理解.NET如何经过定义公共种类实现这一目标,也就显得十分重要。列举一下你所认识的XML技术及其应用值种类和引用种类的差异?写出C#的样例代码Ref与Out的差异。Ref与Out的差异是相同点:使参数按引用传达,注意这里的“引用”与我们平常说的“对象引用”不一样样,能够形象的理解为,近似于C/C++中传指针(地点)。成效是,被调用方对该参数的改正会反应到该变量中,即当调用结束返回时,调用方看到的是修悔过的值。3.方法定义和调用方法都一定显式使用ref或许out重点字不一样点:1。传达到ref的参数一定最初初始化,即由调用方显式初始化。2。传达到out的参数在传达从前不需要显式初始化,但需要调用方在方法返回从前一定对其赋值。使用途景:对于重载说明:1。ref和out重点字在运转时的办理方式不一样,但在编译时的办理方式相同。所以,假如一个方法采纳ref参数,而另一个方法采纳out参数,则没法重载这两个方法。2。可是,假如一个方法采纳ref或out参数,而另一个方法不采纳这两类参数,则能够进行重载。使用ref前一定对变量赋值,out不用。out的函数会清空变量,即便变量已经赋值也不可以,退出函数时所有out引用的变量都要赋值,ref引用的能够改正,也能够不改正。差异能够参看下边的代码:usingSystem;classTestApp{staticvoidoutTest(outintx,outinty){Main何理解拜托?单从拜托的看法上来讲,很简单,就是对方法的引用,包含静态方法和对象实例的方法,有点类似C语言中的方法指针,可是方法指针只好引用静态方法!并且拜托是类安全的!一句话来概括:拜托就是方法的进口!调用拜托就是调用方法,可能有人会说既然调用拜托就是调用方法,那为何不直接调用方法了,干吗非得经过拜托来调用!一开始我也是这么想,包含此刻也还有这个迷惑,个人感觉,假如撇开事件来说,拜托除了匿名方法名称以外,没有详尽实质型的利处!意思就是说我们假如不是在事件里用拜托,和直接调用方法是没有实质区其余!至于拜托的申明格式,其基本语法为:修饰符delegate返回种类代理名称(参数列表)比方说publicdelegatevoidMyDelegate(inti);实例化的时候给它赋值一个方法(实例或静态方法)名就能够了MyDelegateMD=newMyDelegate(类中的方法名)拜托还可以够实现多重拜托,能够用Combine方法讲不一样代理组在一同,也能够用Remove方法从多重代理中除掉一个代理,可是在我们实质使用能够不需要这么麻烦,用+,-能够达到这个目的!比方说:MyDelegateMD=newMyDelegate(方法1);MyDelegateMD2=newMyDelegate(方法2);MyDelegateMD3=MD+MD2;也能够这么写MyDelegateMD3+=newMyDelegate(方法1);MyDelegateMD3+=newMyDelegate(方法2);履行代理MD3就是调用方法1和方法2;多重代理个人感觉在事件拜托顶用途很大,因为在实质对象中,一个方法履行会触发多个方法接踵履行,这个时候会需要多重代理这个看法!使用多重代理的时候要注意方法返回种类一定是void种类的!PS:在代理类中有

2个属性

,一个是

Method,表示所应用方法的名称

!另一个是

Target,

表示实例方法所在对象的种类

,假如是静态方法

,则返回NULL事件(Event)正如我上边说的那样,假如撇开事件,拜托忧如没有多大用途,但也不过假定,拜托就是为事件服务的,二者是分不开的.言事件比言拜托!在C#中,事件和属性,方法相同,是类的一种成员,经过事件的使用,能够在类的对象发生某种变化,经过事件,来触发某些方法来办理事件的发生!举个平常的例子,在的窗体生成种,拖进来一个按钮,双击它,页面后台会自动生成按钮事件的方法名称

,编程人员只需在该方法体内写上详尽方法即可

!

那么按钮类里面是怎么实现的了

?详尽是这样的

,在按钮类里面声了然一个事件拜托

:publicenvetEventHandlerClick;并写了一个触发该事件的方法

:protectedvirtualvoidOnClick(EventArgese){if(Click!=Null){Click(this,e)}}而什么时候调用上边这个方法,依据程序结构种类不一样而异,在WEB应用程序中,是经过回传事件接口来调用上边这个方法,在按钮类里不过实现了事件拜托,详尽双击按钮触发的实质方法是在页面程序里编写的!(PS:所以这也是我认为使用事件拜托的最大利处,灵巧行好,灵巧,假如不用拜托,而是直接调用方法,那么所调用的方法就固定死了,不利于实质面向对象编程中出现的未预型方法,不灵巧了)在页面程序为按钮绑定事件拜托所引用的方法是开发环境自动帮我们达成的,但我们要清楚实现的必需步骤

:在页面程序里一定给按钮的事件实例化方法

,在的页面代码中的

privatevoidInitializeComponent( )

里要写上

:+=new;

明事件拜托

;触发事件的方法;实例化事件拜托(给拜托增添引用方法)msdn2005中是这样解说的:拜托拥有以下特色:拜托近似于C++函数指针,但它是种类安全的。拜托同意将方法作为参数进行传达。拜托可用于定义回调方法。拜托能够链接在一同;比方,能够对一个事件调用多个方法。方法不需要与拜托署名精准般配。有关更多信息,请拜见协变和逆变。C#版引入了匿名方法的看法,此类方法同意将代码块作为参数传达,以取代独自定义的方法。拜托合用于那种在某些其余语言中需用函数指针来解决的状况(场合)。可是,与函数指针不一样,拜托是面向对象和种类安全的。拜托申明定义一个类,它是从类派生的类。拜托实例封装了一个调用列表,该列表列出了一个或多个方法,每个方法称为一个可调用实体。对于实例方法,可调用实体由一个实例和该实例的方法构成。对于静态方法,可调用实体仅由一个方法构成。假如用一组适合的参数来调用一个拜托实例,则该拜托实例所封装的每个可调用实体都会被调用,并且用的都是上述的同一组参数。拜托实例的一个风趣且实用的属性是:它既不知道也不关怀有关它所封装的方法所属的类的种种详情;对它来说最重要的是这些方法与该拜托的种类兼容(第节)。这使拜托特别适合“匿名”调用。这是一个强盛的功能。定义和使用拜托分三个步骤:申明、实例化和调用。#中的接口和类有什么异同。一个接口定义一个协议。实现接口的类或结构一定恪守其协议。接口能够包含方法、属性、索引器和事件作为成员。接口是负责功能的定义,项目中经过接口来规范类,操作类以及抽象类的看法!而类是负责功能的详尽实现!在类中也有抽象类的定义,抽象类与接口的差异在于:抽象类是一个不完好的类,类里面有抽象的方法,属性,也能够有详尽的方法和属性,需要进一步的专业化。但接口是一个行为的规范,里面的所有东西都是抽象的!一个类只好够继承一个基类也就是父类,但能够实现多个接口PS:接口除了规范一个行为以外,在详尽项目中的实质作用也是十分重要的,在面向对象的设计原则以及设计模式的使用中,无不表现作为一个接口的使用利处,最直接的就是设计原则中OCP(开放封闭原则),我们使用接口,而不需要关怀他的详尽实现,详尽实现的细节变化也没关客户端(使用接口的类)的使用,对与扩展是开放的,我们能够另写一个接口的实现来扩展目前途序,而不影响上层的使用,但对改正是封闭的,即我们不可以够再去改正接口的定义,自然这个“不能够”是指在规范原则上不该当这么做!。net中读写数据库需要用到哪些类?他们的作用连结和TCP连结的异同。的身份考证方式有哪些?分别是什么原理?进度和线程分别怎么理解?简单的说,你每启动一个程序,就启动了一个进度。在Windows下,进度是最小运转单位。在Windows95/NT下,每个进度还可以够启动几个线程,比方每下载一个文件能够独自开一个线程。在Windows95/NT下,线程是最小单位。WINDOWS的多任务特征使得线程之间独立运行,可是它们相互共享虚假空间,也就是共用变量,线程有可能会同时操作一片内存。线程与进度的差异多线程共存于应用程序中是现代操作系统中的基本特色和重要标记。用过UNIX操作系统的读者知道进度,在UNIX操作系统中,每个应用程序的履行都在操作系统内核中登记一个进度标记,操作系统依据分派的标记对应用程序的履行进行调动和系统资源分派,但进度和线程有什么差异呢?进度和线程都是由操作系统所领会的程序运转的基本单元,系统利用该基本单元实现系统对应用的并发性。进度和线程的差异在于:线程的区分尺度小于进度,使得多线程程序的并发性搞。其余,进度在履行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提升了程序的运转效率。线程在履行过程中与进度还是有区其余。每个独立的线程有一个程序运转的进口、次序履行序列和程序的出口什么是code-Behind技术。活动目录的作用。中读写XML的类都归属于哪些命名空间?解说一下UDDI、WSDL的意义及其作用。什么是SOAP,有哪些应用。答:SOAP(SimpleObjectAccessProtocol)简单对象接见协议是在分别或分布式的环境中互换信息并履行远程过程调用的协议,是一个鉴于XML的协议。使用SOAP,不用考虑任何特定的传输协议(最常用的还是HTTP协议),能够同意任何种类的对象或代码,在任何平台上,以任何向来语言互相通讯。这类互相通讯采纳的是XML格式的信息,详尽请看如何部署一个页面。如何理解中的垃圾回收系统。常用的调用webservice方法有哪些?与abstraction差异?结构与类有何差异?哪些时候比较适合使用结构和类?它们的相同之处:1,二者都是Container种类,这表示它们能够包含其余数据种类作为成员.2,二者都拥有成员,这些成员包含:结构函数,方法,属性,字段,常量,列举种类,事件,以及事件办理函数.3,二者的成员都有其各自的存取范围.比方,您能够将某一个成员申明为Public,而将其余一人成员申明为Private4,二者都能够实现接口.5,二者都能够公然一个默认属性,可是前提是这个属性最少要获得一个自变量.6,二者都能够申明和触发事件,并且二者都能够申明拜托(Delegate).7,结构与类都能够完好部是空的.它们的不一样之处以下:1,结构是实值种类(ValueTypes),而类是引用种类(ReferenceTypes).2,结构使用载储存(StackAllocation),而类使用堆储存(HeapAllocation).3,所有结构成员默认都是Public,而类的变量与常量数则默认为(Private,可是其余类成员默认都是Public.4,结构成员国不可以被申明为Protected,可是类成员能够这样做.5,结构变量申明不可以指定初始值,使用new重点字词或对数组进行初始化,但类变量申明则可以这样做.6,结构不可以申明默认的结构函数,也就是不拥有参数的非共享结构函数,可是类则无此限制.7,二者都能够拥有共享结构函数,结构的共享结构函数不可以带有参数,但类的共享结构函数则能够带或许不带参数.8,结构不一样意申明析构函数(Destructor),类则无此限制.9,结构的实例(Instance)申明,不一样意对包含的变量进行初始化设定,类则能够在申明类的实例时,同时进行变量初始化.10,结构是隐式继承自ValueType类并且不可以继承任何其余的种类,类则能够继承来自ValueType以外的任何类.11,结构是没法被继承的,类则能够被继承.12,结构永久不会停止,所以CommonLanguageRuntime(CLR)不会在任何结构上浮用Finalize

方法.类则是由内存回收进度加以停止

,当内存回收进度检测到没有任何作用的类时,它就会调用类的

Finalize

方法.13,

结构不需要结构函数

,类则需要结构函数

.14,

结构只好在一种状况下使用非共享结构函数

,那就是非共享结构函数会接收参数

:可是类则无此限制

,它能够使用带参数或不带参数的非共享结构函数

.15,每一个结构都拥有无参数的隐含公共结构函数.此结构函数会将结构的所有成员初始化为基默认值.您不可以从头定义这个行为.除了上述的相像处与相异点以外,我们还可以够在”实例与变量”层面上来商讨结构与类.因为结构是数值种类的,所以每个结构变量会永久地绑定到结构实例上.可是类是引用种类的,并且对象变量可引用不一样的类实例.在此方面的差异,会对于使用结构与类造成以下影响:1结构变量会隐式地使用结构的无参数结构函数来初始化成员,这就意味着,语句StructlS就等于StructlS=newStructl( );2当您好将一个结构变量赋值给另一个,或是将结构实例传达到程序变量时,所有变量成员的值会复制到新的结构中.当您将一个对象变量赋值给另一个,或是将对象变量传达到程序时,则只会复制指针.3,您能够将Null值赋值给结构变量,可是该实例会向来与该变量保持关系.固然变量成员会所以赋值而从头初始化,可是您还是能够调用变量的方法并接见其数据成员.相反地,假如您将对象变量设定为Null,您就会中断它与任何类实例的关系,并且除非您再将其余一个实例赋值给它,不然没法经过变量接见任何成员.4,您能够在不一样时间将不一样的类的实例赋值给同一个对象变量,并且在同一时间能够有好几个对象变量引用相同的类实例,假如您对类成员值做了改变,则其余指向相同实例的对象变量也会发生改变.可是,结构成员则会封装在它们自己的实例中,更改结构成员值其实不会对其余任何结构变量的成员造成影响,甚至也不会影响相同Struct申明的其余实例.5,两个结构一定以成员对成员的比较方式来履行相等比较.两个对象变量能够使用Equals方法来加以比较.Equals会判断两个变量能否指向相同的实例.在以下状况中,比较适合使用结构1,您拥有少许数据并且希望使用会传达的方式来为变量赋值时.2您会在每一个实例上履行大批的操作,并且若使用堆来管搭理造成性能降落.3,您不需要进行继承,并且不需要实例有特别性.4,您不会采纳Boxing与Unboxing结构.5,您会在Managed与UnManaged程序代码之间传达Blittable数据.在以下状况中,比较适合使用类:1,您需要使用继承与多态.2,您需要在创立阶段初始化一个或多个成员.3,您需要供给一个非参数型的结构函数.4,您需要没有任何限制的事件办理支持.23.说说你对二维树的理解?24.如何把一个array复制到arrayList里foreach(objectoinarray)(o);能够连结什么数据源[dataset,datatable,dataview]dataset,datatable,dataview,IList26.概括反射和序列化反射:程序集包含模块,而模块包含种类,种类又包含成员。反射则供给了封装程序集、模块和种类的对象。您能够使用反射动向地创立种类的实例,将种类绑定到现有对象,或从现有对象中获取种类。而后,能够调用种类的方法或接见其字段和属性序列化:序列化是将对象变换为简单传输的格式的过程。比方,能够序列化一个对象,而后使用HTTP经过Internet在客户端和服务器之间传输该对象。在另一端,反序列化将从该流从头结构对象。27.概括o/rmapping的原理利用反射,配置将类于数据库表映照28.类成员有( )种可接见形式可接见形式?不懂。可接见性:public,protected,private,internal29.用sealed修饰的类有什么特色sealed修饰符用于防范从所修饰的类派生出其余类。假如一个密封类被指定为其余类的基类,则会发生编译时错误。密封类不可以同时为抽象类。sealed修饰符主要用于防范非存心的派生,可是它还可以促进某些运转时优化。具体说来,因为密封类永久不会有任何派生类,所以对密封类的实例的虚假函数成员的调用能够变换为非虚假调用来办理。#中,stringstr=null与stringstr="",请尽量用文字说明差异。(重点:说明详尽的内存空间分派)概括三层结构系统如何实现MVC模式,举例说明!。net中读写数据库需要用到哪些类?他们的作用的身份考证方式有哪些?分别是什么原理?Remoting与webservices差异?36.C#能否对内存进行直接的操作37:您在什么状况下会用到虚方法?它与接口有什么不一样?38:Override与重载有什么差异?39:值种类与引用种类有什么差异?40:如何理解静态变量?41:向服务器发送恳求有几种方式?42:DataReader与DataSet有什么差异?43:假如在一个B/S结构的系统中需要传达变量值,可是又不可以使用Session、Cookie、Application,您有几种方法进行办理?使用这个方法对比上边介绍的方法略微复杂一点,但在页面间值传达中倒是特别实用的,使用该方法你能够在另一个页面以对象属性的方式来存取显现的值,自然了,使用这类方法,你需要额外写一些代码以创立一些属性以便能够在另一个页面接见它,可是,这个方式带来的利处也是显而易见的。整体来说,使用这类方法是简短的同时又是面向对象的。使用这类方法的整个过程如下:1,在页面里增添必需的控件2,创立返回值的Get属性过程3,创立能够返回表单的按钮和链接按钮4,在按钮单击事件办理程序中调用方法转移到指定的页面5,在第二个页面中,我们就能够使用属性来获取前一个页面实例对象的引用,经过它,即可以使用存取前一个页面的控件的值了以下代码综合实现上述步骤过程的代码:源页面代码:把以下的代码增添到页面中publicstringName{get{return;}}publicstringEMail{get{return;}}而后调用方法privatevoidButton1_Click(objectsender,e){("";}目标页面代码:privatevoidPage_Load(objectsender,e){oString( );or"sum"].ToString( );"sum"];方法3:全局变量发送页:Application["sum"]=("";接收页:"sum"];Application实质上是整个虚假目录中所有文件的会合,假如想在整个应用范围内使用某个变量值,Application对象将是最正确的选择在这里用Session[""]的方法相同方法4:发送页:1.定义静态变量:publicstaticstringstr="";2.str=

("";接收页:1.引入第一页的命名空间:usingWebApplication1;244:软件开发过程一般有几个阶段?每个阶段的作用?45:微软推出了一系列的ApplicationBlock,请举出您所知道的ApplicationBlock并说明其作用?46:请列举一些您用到过的设计模式以及在什么状况下使用该模式?47:您对WebService的领会?以下几道题目假如您不会,请较为详尽的描绘您的解决思路和方法48:经过超链接如何传达中文参数?49:请编程遍历页面上所有TextBox控件并给它赋值为?50:请编程实现一个冒泡排序算法?下边这段代码输出什么?为何?inti=5;intj=5;if(i,j))("Equal");else("NotEqual");对于这样的一个列举种类:enumColor:byte{Red,Green,Blue,Orange}string[]ss=(typeof(Color));byte[]bb=(typeof(Color));试写一段程序显示出列举种类中定义的所有符号名称以及它们对应的数值。一个长度为10000的字符串,经过随机从a-z中抽取10000个字符构成。请用c#语言编写主要程序来实现。54.在c#中

using

和new这两个重点字有什么意义,

请写出你所知道的意义?

using

指令和语句

new

创立实例

new

隐蔽基类中方法55下边这段代码有错误么?switch(i){case( ):CaseZero( );break;case1:CaseOne( );break;case2:dufault;面的代码中有什么错误吗?_______usingSystem;classA{publicvirtualvoidF( ){("");}}abstractclassB:A{publicabstractoverridevoidF( );整数a赋值给一个object对象时,整数a将会被__装箱(封装)___?3.类成员有

_____种可接见形式?

this.;newClass( ).Method;staticconstintA=1;

这段代码有错误么?是什么?

const

不可以用

static

修饰f=-123.567F;inti=(int)f;i的值此刻是_____?1236.利用operator申明且仅声了然“==”,有什么错误么?拜托申明的重点字是______?delagete用sealed修饰的类有什么特色?密封,不可以继承在中所有的自定义用户控件都一定继承自________?Control10.在.Net中所有可序列化的类都被标记为_____?11.在.Net托管代码中我们不用担忧内存漏洞,这是因为有了______?gc1.有哪几种方法能够实现一个类存取其余一个类的成员函数及属性,并请举列来加以说明和分析.假如需记录类的实例个数,该如何实现,请写一个简单的类于以证明.类是B类的基类

,并且都有自己的结构

,析构函数

,请举例证明

B类从实例化到消亡过程中结构

,析构函数的履行过程

.4.需要实现对一个字符串的办理,第一将该字符串首尾的空格去掉,假如字符串中间还有连续空格的话,仅保存一个空格,即同意字符串中间有多个空格,但连续的空格数不可以超出一个.2、的错误办理系统是什么数据库方面:储存过程和函数的差异事务是什么?游标的作用?如何知道游标已经到了最后?触发器分为事先触发和过后触发,这两种触发有和差异。语句级触发和行级触发有何差异。1。用C#实现以下功能a产生一个int数组,长度为100,并向此中随机插入1-100,并且不可以重复。int[]intArr=newint[100];ArrayListmyList=newArrayList( );Randomrnd=newRandom( );while<100){intnum=(1,101);if(!(num))(num);}for(inti=0;i<100;i++)intArr[i]=(int)myList[i];对上边生成的数组排序,需要支持升序、降序两种次序2。请说明在中常用的几种页面间传达参数的方法,并说出他们的优弊端。session(viewstate)简单,但易抛弃application全局cookie简单,但可能不支持,可能被假造inputttype="hidden"简单,可能被假造url参数简单,显示于地点栏,长度有限数据库稳固,安全,但性能相对弱3。请说明中的错误办理系统,并举例trycatchfinal4。请说出强名的含义拥有自己的key,能够在GAC(全局程序集缓存)为公用5。请列出c#中几种循环的方法,并指出他们的不一样forwileforeach6。请指出中所有种类的基类object7。请指出GAC的含义8。SQLSREVER中,向一个表中插入了新数据,如何快捷的获取自增量字段的目前值试卷1.填空:(1)面向对象的语言拥有________性、_________性、________性。(2)能用foreach遍历接见的对象需要实现________________接口或申明________________方法的种类。列举中的五个主要对象_______________、_____________、_______________、_______________、_________________。Connection,Command,DataReader,DataAdapter,DataSetconnection连结对象command命令对象,指示要履行的命令和储存过程!datareader是一个向前的只读的数据流。dataadapter是功能强盛的适陪器,支持增修改查的功能dataset是一个数据级对象,相当与内存中的一张表或多张表!不定项选择:以下表达正确的选项是:A.接口中能够有虚方法。B.一个类能够实现多个接口。C.接口不可以被实例化。D.接口中能够包含已实现的方法。从数据库读取记录,你可能用到的方法有:A.ExecuteNonQueryB.ExecuteScalarC.FillD.ExecuteReader3.简述private、protected、public、internal修饰符的接见权限。4.写出一条Sql语句:拿出表A中第31到第40记录(SQLServer,以自动增加的ID作为主键,注意:ID可能不是连续的。)5.列举页面之间传达值的几种方式。写出程序的输出结果classClass1{privatestringstr="";privateinti=0;staticvoidStringConvert(stringstr){str="stringbeingconverted.";}staticvoidStringConvert(Class1c){="stringbeingconverted.";}staticvoidAdd(inti){i++;}staticvoidAddWithRef(refinti){i++;}staticvoidMain( ){inti1=10;inti2=20;stringstr="str";Class1c=newClass1( );Add(i1);AddWithRef(refi2);Add;StringConvert(str);StringConvert(c);(i1);(i2);;(str);;}}写出程序的输出结果publicabstractclassA{publicA( ){('A');}publicvirtualvoidFun( ){("( )");}}publicclassB:A{publicB( ){('B');}publicnewvoidFun( ){("( )");}publicstaticvoidMain( ){Aa=newB( );( );}}写出程序的输出结果:publicclassA{publicvirtualvoidFun1(inti){(i);}publicvoidFun2(Aa){(1);Fun1(5);}}publicclassB:A{publicoverridevoidFun1(inti){(i+1);}publicstaticvoidMain( ){Bb=newB( );Aa=newA( );(b);(a);}}一列数的规则以下:1、1、2、3、5、8、13、21、34求第30位数是多少,用递归算法实现。(C#语言)10.程序设计:猫大喊一声,所有的老鼠都开始逃跑,主人被惊醒。(C#语言)要求:1.要有联动性,老鼠和主人的行为是被动的。考虑可扩展性,猫的喊声可能惹起其余联动效应。参照答案:(1)继承性、封装性、多态性。(考基本看法)(2)IEnumerable、GetEnumerator(对foreach系统的理解,原来不想出这题的,凑分)...(送分题,对的认识)评分标准:一空1分,满分10分。2.(1)B、C(考对接口的理解)(2)B、C、D(观察对的娴熟程度评分标准:一题5分,不选或许错选均不得分。漏选得2分。满分

)10分。3..private:

私有成员

,

在类的内部才能够接见。protected:

保护成员,该类内部和继承类中能够接见。public:

公共成员,完好公然,没有接见限制。internal:

在同一命名空间内能够接见。评分标准:答对

1题2分,2题5分,3题7分。全对

10分。

(

送分题

)解1:selecttop10*fromAwhereidnotin(selecttop30idfromA)解2:selecttop10*fromAwhereid>(selectmax(id)from(selecttop30idfromA)asA)评分标准:写对即10分。(答案不独一,datagrid分页可能需要用到)1.使用QueryString,如?id=1;response.Redirect( )使用Session变量使用等等评分标准:答对1点得3分,两点7分,3点10分。(观察值引用和对象引用)strstringbeingconverted.评分标准:答对一点得2分,满分10分。AB( )评分标准:写出得5分,写出( )得5分,满分10分。(观察在继承类中结构函数,以及new方法,)2516评分标准:答对一点得2分,两点得5分,3点得7分。全对得10分。(一些人做这题,头都晕了^_^)9.publicclassMainClass{publicstaticvoidMain( ){(Foo(30));}publicstaticintFoo(inti){if(i<=0)return0;elseif(i>0&&i<=2)return1;elsereturnFoo(i-1)+Foo(i-2);}}评分标准:写出returnFoo(i-1)+Foo(i-2);得5分。写出if(i>0&&i<=2)return1;得5分。方法参数过多需要扣分(扣除分数=参数个数-1)不用递归算法扣5分(递归算法在树结构建立等方面比较常用)10重点:1.联动成效,运转代码只需履行( )方法。2.对老鼠和主人进行抽象评分标准:<1>.结构出Cat、Mouse、Master三个类,并能使程序运转(2分)<2>从Mouse和Master中提取抽象(5分)<3>联动效应,只需履行( )就能够使老鼠逃跑,主人惊醒。(3分)publicinterfaceObserver{voidResponse( );MainpublicdelegatevoidSubEventHandler( );publicabstractclassSubject{publiceventSubEventHandlerSubEvent;protectedvoidFireAway( ){if!=null)( );}}publicclassCat:Subject{publicvoidCry( ){("catcryed.");( );}}publicabstractclassObserver{publicObserver(Subjectsub){+=newSubEventHandler(Response);}publicabstractvoidResponse( );}publicclassMouse:Observer{privatestringname;publicMouse(stringname,Subjectsub):base(sub){=name;}publicoverridevoidResponse( ){(name+"attempttoescape!");}}publicclassMaster:Observer{publicMaster(Subjectsub):base(sub){}publicoverridevoidResponse( ){("hostwaken");}}classClass1{staticvoidMain(string[]args){Catcat=newCat( );Mousemouse1=newMouse("mouse1",cat);Mousemouse2=newMouse("mouse2",cat);Mastermaster=newMaster(cat);( );}}.C#中property与attribute的差异,他们各有什么用途,这类系统的利处在哪里?一个是属性,用于存取类的字段,一个是特征,用来表记类,方法等的附带性质2.讲一讲你理解的webservice,在dotnetframework中,怎么很好的联合xml?(讲看法就行了)3.C#,Java和c++的特色,有什么相同的地方,不一样的地方,C#分别从c++和java中汲取了他们那些长处?相同点:都是C系的,都是面向对象不一样点:Java,C#都是建立在虚假机系统上,而C++不是4.C#能否对内存进行直接的操作?(这可是个难点哦?要注意!)能够5.用VisualC++编写的代码(unmanagedcode),如何在CLR下和其余dotnetcomponent联合?6.从前作过的一些项目?介绍一下自己的编程经验。(这是蒙混可是去的,基本一问就知道是真是假)7.你对企业有什么希望?你的薪资希望值?为何学计算机?从前的工作经验(这特别重要)?Q3:保护数据库的完好性、一致性、你喜爱用触发器还是自写业务逻辑?为何触发器,性能好,事务性Q4:ADO。NET相对于ADO等主要有什么改良?新增dataset等,不需要随时保持连结,性能提升Q5:ASP。NET与ASP对比,主要有哪些进步?asp解说形,aspx编译型,性能提升,有益于保护源码Q6:C#中的拜托是什么?事件能否是一种拜托?拜托是一种安全的函数指针,事件是一种信息系统、也是拜托Q7:描绘一下C#中索引器的实现过程,能否只好依据数字进行索引?Q8:C#中要使一个类支持FOREACH遍历,实现过程如何?Q10:写一个HTML页面,实现以下功能,左键点击页面时显示“您好”,右键点击时显示“严禁右键”。并在2分钟后自动封闭页面。Q11:你对XMLHTTP、WEBSERVICE认识吗?简单描绘其特色、作用Q12:接口和抽象类有什么差异?你选择使用接口和抽象类的依照是什么?接口用于规范,抽象类用于共性Q13:自定义控件和一般用户控件的异同?假如要用这二者之一,你会选择哪一种?为何Q14:大体描绘一下ASP。NET服务器控件的生命周期Q15:UMLQ16:面向对象的看法,主要特色Q17:类区分的依照。类粒度问题Q18:事物管理问题第一,说说final,finally,finalize的差异。第二,AnonymousInnerClass(匿名内部类)能否能够extends(继承)其余类,能否能够implements(实现)interface(接口)?第三,StaticNestedClass和InnerClass的不一样,说得越多越好(面试题有的很抽象)。第四,&和&&的差异。第五,HashMap和Hashtable的差异。第六,Collection和Collections的差异。第七,什么时候用assert。第八,GC是什么?为何要有GC?第九,Strings=newString("xyz");创立了几个StringObject?第十,等於多少?等於多少?第十一,shorts1=1;s1=s1+1;有什么错?shorts1=1;s1+=1;有什么错?第十二,sleep( )和wait( )有什么差异?第十三,Java有没有goto?第十四,数组有没有length( )这个方法?String有没有length( )这个方法?第十五,Overload和Override的差异。Overloaded的方法能否能够改变返回值的种类?第十六,Set里的元素是不可以重复的,那么用什么方法来区分重复与否呢?是用==还是equals( )?它们有何差异?第十七,给我一个你最常有到的runtimeexception。第十八,error和exception有什么差异?第十九,List,Set,Map能否继承自Collection接口?第二十,abstractclass和interface有什么差异?第二十一,abstract的method能否可同时是static,能否可同时是native,能否可同时是synchronized?第二十二,接口能否可继承接口?抽象类能否可实现(implements)接口?抽象类能否可继承实体类(concreteclass)?第二十三,启动一个线程是用run( )还是start( )?第二十四,结构器Constructor能否可被override?第二十五,能否能够继承

String

类?第二十六,当一个线程进入一个对象的一个

synchronized

方法后,其余线程能否可进入此对象的其余方法

?第二十七,

try{}里有一个

return

语句,那么紧跟在这个

try

后的

finally

{}

里的code会不会被执行,什么时候被履行,在

return

前还是后

?第二十八,编程题

:

用最有效率的方法算出

2乘以

8等於几

?第二十九,两个对象值相同

(y)==true)

,但却可有不一样的

hashcode

,这句话对不对

?第三十,当一个对象被看作参数传达到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里究竟是值传达还是引用传达?第三十一,swtich能否能作用在byte上,能否能作用在long上,能否能作用在String上?第三十二,编程题:写一个Singleton出来。有几种用法第一种:newClass( );第二种:覆盖方法publicnewXXXX( ){}第三种:new拘束指定泛型类申明中的任何种类参数都一定有公共的无参数结构函数。2.如何把一个array复制到arrayList里foreach(objectoinarray)(o);能够连结什么数据源[dataset,datatable,dataview]dataset,datatable,dataview,IList概括反射和序列化反射:程序集包含模块,而模块包含种类,种类又包含成员。反射则供给了封装程序集、模块和种类的对象。您能够使用反射动向地创立种类的实例,将种类绑定到现有对象,或从现有对象中获取种类。而后,能够调用种类的方法或接见其字段和属性序列化:序列化是将对象变换为简单传输的格式的过程。比方,能够序列化一个对象,而后使用HTTP经过Internet在客户端和服务器之间传输该对象。在另一端,反序列化将从该流从头结构对象。5.概括o/rmapping的原理利用反射,配置将类于数据库表映照类成员有( )种可接见形式可接见形式?不懂。可接见性:public,protected,private,internal用sealed修饰的类有什么特色sealed修饰符用于防范从所修饰的类派生出其余类。假如一个密封类被指定为其余类的基类,则会发生编译时错误。密封类不可以同时为抽象类。sealed修饰符主要用于防范非存心的派生,可是它还可以促进某些运转时优化。详尽说来,因为密封类永久不会有任何派生类,所以对密封类的实例的虚假函数成员的调用能够变换为非虚假调用来办理。列举中的五个主要对象,并简单描绘connection,command,dataReader,trans,dataset...履行下边代码后:StringstrTemp="abcdefg某某某";IntiIntj=;问:i=(14);j=(11)i=(14);j=(11)中文两个字节#中,stringstr=null与stringstr="",请尽量用文字说明差异。(重点:说明详尽的内存空间分派)stringstr=""分派空间11.详述.NET里class和struct的异同!class:放在?struct放在?struct值传达类与结构有好多相像之处:结构能够实现接口,并且能够拥有与类相同的成员种类。可是,结构在几个重要方面不一样于类:结构为值种类而不是引用种类,并且结构不支持继承。结构的值储存在“在货仓上”或“内联”。仔细的程序员有时能够经过聪慧地使用结构来加强性能。概括.NET里对remoting和webservice两项技术的理解和实质中的应用。远程逻辑调用,remoing接口只好用在中什么是code-behind技术aspxandcs概括三层结构系统web/business/dataaccess如何实现MVC模式,举例说明!web/business/dataaccess面向对象的思想主要包含什么?答:这个题范围太广,不知道说什么.什么是中的用户控件答:用户控件就是.ascx扩展名的东西喽,能够拖到不一样的页面中调用,以节俭代码.比方登岸可能在多个页面上有,就能够做成用户控件,可是有一个问题就是用户控件拖到不一样级其余目录下后里面的图片等的相对路径会变得不正确,需要自已写方法调整.3.什么叫应用程序域?什么是受管制的代码?什么是强种类系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解说?答:装箱就是把值种类转成引用种类,从MSIL角度看忧如是boxing,没记错的话是把值从货仓转到堆中.拆箱相反,重载就是指一个方法名同,参数个数不一样,返回值能够相同的方法.CLR是通用语言运转时,其余的不清楚.列举一下你所认识的XML技术及其应用答:XML可是好东西,保存配置,站与站之间的沟通,WEBSERVICE都要用它.5.值种类和引用种类的差异?写出C#的样例代码。答:结构是值种类,类是引用种类,所以传结构就是值种类的应用啦,传对象或类就是引用种类的,这个不用多写了吧.中常用的对象有哪些?分别描绘一下。答:connectioncommandsqladapterdatasetdatatabledataview等等.写不完了.如何理解拜托?答:听闻相当于函数指针,定义了拜托就能够在不调用原方法名称的状况下调用那个方法.msdn2005中是这样解说的:拜托拥有以下特色:拜托近似于C++函数指针,但它是种类安全的。拜托同意将方法作为参数进行传达。拜托可用于定义回调方法。拜托能够链接在一同;比方,能够对一个事件调用多个方法。方法不需要与拜托署名精准般配。有关更多信息,请拜见协变和逆变。C#版引入了匿名方法的看法,此类方法同意将代码块作为参数传达,以取代独自定义的方法。#中的接口和类有什么异同。答:这个异同可多了,要求情楚还真不简单.。net中读写数据库需要用到哪些类?他们的作用答:这个类自已能够写的啊,你是指基类吗?那configuration,sqlconnection,sqlcommand等都要用到.连结和TCP连结的异同。答:前者尽管传,不论数据到不到,不必建立连结.后者保证传输的数据正确,须要连结.的身份考证方式有哪些?分别是什么原理?答:form认证,windows集成认证等,原理不清楚.进度和线程分别怎么理解?答:进度是老子,线程是儿子,没有老子就没有儿子,一个老子能够有多个儿子.一个儿子能够成为他人的儿子,一个老子也能够为其余老子生儿子.13.什么是code-Behind技术。答:代码分别,这是个理智的东西,像ASP这样混成一堆很不爽.或许能够理解成HTML代码写在前台,C#代码写在后台.自然前台也有脚本,类的调用等,其实写在一同也是能够的.活动目录的作用。答:这个不理解.请理解的增补一下.中读写XML的类都归属于哪些命名空间?答:我自已写的就不必定了,嘿嘿.解说一下UDDI、WSDL的意义及其作用。答:什么东西?什么是SOAP,有哪些应用。答:SOAP(SimpleObjectAccessProtocol)简单对象接见协议是在分别或分布式的环境中互换信息并执行远程过程调用的协议,是一个鉴于XML的协议。使用SOAP,不用考虑任何特定的传输协议(最常用的还是HTTP协议),能够同意任何种类的对象或代码,在任何平台上,以任何向来语言互相通讯。这类互相通信采纳的是XML格式的信息,详尽请看如何部署一个页面。答:随意啦,想直接上传就直接上传,想打包成EXE就打包,看个人喜好.如何理解中的垃圾回收系统。答:GC?对象创立了总要除掉啊,不然内存哪够用?20.常用的调用webservice方法有哪些?答:调用就调用,还有好多方法吗?以上有答案的仅供参照(不必定正确哦),假如你有更好的答案请答复告诉我.阅读:CSDN-文谈论:档中心参加评-.NET论许久从前的一个sql面试题及答标题案.选择自kgdiwss的Blog许久从前的重点字一个sql面试题及答案.出处今日忽然想起来许久从前的一个sql面试题,在同事的帮助下终于实现了.在此对题目详尽数据记不清了,可是大体意思相同,要求在查问分析器中达成,题目以下:表className中有以下分类:classIDclassName1衣服2裤子5帽子10鞋子表productInfo有以下记录:productIDproductNameparentID1男士衣服1衣服类型中这条记录的点击率最高2女士衣服13男士裤子24女士裤子2裤子类型中这条记录点击率最高5男士帽子56女士帽子5帽子类型中这条点击率最高7男士鞋子10子类型中这条点击率最高8女士鞋子109女士鞋子110此刻要求分别把衣服,裤子,帽子,鞋子这些类型中点击率最高的一条记录找出来,而后再降序摆列,productIDproductNameclickNum1男士衣服4女士裤子7男士鞋子6女士帽子以下为实现过程:/*功能:搜寻类型表[className]中的每个类型下点击率最高的那条记录,而后将这些记录降序摆列作者:vivianhu整理:kgdiwss(我不过增添了说明以及重命名了一些变量)日期:2006-4-17*//*假如存在暂时表tTable,则先将它删除*/ifexists(select*fromwhereid=object_id(N'[dbo].[tTable]')andOBJECTPROPERTY(id,N'IsUserTable')=1)droptable[dbo].[tTable]GO/*创立暂时表*/createtabletTable(productidint,productnamevarchar(10),clicknumint)/*变量申明*/declare@classIDint/*定义游标*/declarecursor_classIDCURSORFORSELECTclassIDFROMclassName/*翻开游标@@FETCH_STATUS返回被FETCH语句履行的最后游标的状态,而不是任何目前被连结翻开的游标的状态。表示FETCH语句成功。*/OPENcursor_classIDFETCHNEXTFROMcursor_classIDINTO@classIDWHILE@@FETCH_STATUS=0/*搜寻某一类型中点击率最高的一条记录*/BEGINinsertintotTableselecttop1productID,productName,clickNumfromproductInfowhereparentID=@classIDorderbyclickNumdescFETCHNEXTFROMcursor_classIDINTO@classIDEND/*封闭游标*/CLOSEcursor_classID/*删除游标引用*/DEALLOCATEcursor_classID/*对暂时表中的记录依据点击率进行降序摆列*/select*fromtTableorderbyclickNumdesc/*删除暂时表*/droptabletTable一条语句搞定SELECTproductID,productName,clickNumFROMproductInfoWHERE(convert(varchar(20),parentID)+'_'+convert(varchar(20),clickNum)in(SELECTconvert(varchar(20),parentID)+'_'+convert(varchar(20),MAX(clickNum))FROMproductInfoGROUPBYparentID))C#面试基础问题EnglishVersion:假如你的简历上边写“熟习/认识C#”,那么你就应当能够回答下边的这些基础问题。我将给出自己的简要答案以供参照。欢迎谈论。假如是“精晓”,那么请参照:传入某个属性的set方法的隐含参数的名称是什么?value,它的种类和属性所声名的种类相同。如何在C#中实现继承?在类名后加上一个冒号,再加上基类的名称。C#支持多重继承么?不支持。能够用接口来实现。被protected修饰的属性/方法在哪处能够接见?在继承或间接继承与这个类的子类中能够接见。私有成员会被继承么?会,可是不可以被接见。所以看上去他们仿佛是不可以被继承的,但实质上的确被继承了。6.请描绘一下修饰符protectedinternal。被protectedinternal修饰的属性/方法只好在它的在同一个程序集(Assembly)中的子类被接见。C#供给一个默认的无参数结构函数,当我实现了其余一个有一个参数的结构函数时候,还想保存这个无参数的结构函数。这样我应当写几个结构函数?两个,一旦你实现了一个结构函数,C#就不会再供给默认的结构函数了,所以需要手动实现那个无参数结构函数。C#中所有对象共同的基类是什么?.重载和覆写有什么差异?重载供给了对一个方法署名的不一样参数调用的实现。覆写供给了子类中改变父类方法行为的实现。在方法定义中,virtual有什么含意?被virtual修饰的方法能够被子类覆写。能够将非静态的方法覆写成静态方法么?不可以,覆写方法的署名一定与被覆写方法的署名保持一致,除了将virtual改为override。能够覆写私有的虚方法么?不可以够,甚至子类中没法接见父类中的私有方法。能够阻挡某一个类被其余类继承么?能够,使用重点字sealed。能够实现同意某个类被继承,但不一样意此中的某个方法被覆写么?能够,标记这个类为public,并标记这个方法为sealed。15.什么是抽象类(abstractclass)?一种不可以够被实例化的类。抽象类中一般含有抽象方法,自然也可有详尽实现。继承类只有实现过所有抽象类的抽象方法后才能被实例化。何时一定申明一个类为抽象类?当这个类中包含抽象方法时,或是该类并无完好实现父类的抽象方法时。接口(interface)是什么?只含有共有抽象方法(publicabstractmethod)的类。这些方法一定在子类中被实现。为何不可以指定接口中方法的修饰符?接口中的方法用来定义对象之间通讯的契约,指定接口中的方法为私有或保护没存心义。他们默认为公有方法。能够继承多个接口么?自然。那么假如这些接口中有重复的方法名称呢?这类状况中你能够决定如何实现。自然需要特别得当心。可是在编译环节是没有问题的。接口和抽象类的差异是什么?接口中所有方法一定是抽象的,并且不可以指定方法的接见修饰符。抽象类中能够有方法的实现,也能够指定方法的接见修饰符。如何差异重载方法?不一样的参数种类,不一样的参数个数,不一样的参数次序。const和readonly有什么差异?const重点字用来申明编译经常量,readonly用来申明运转经常量。和有什么差异?是不可以变的字符串。寄存了一个可变的字符串,并供给一些对这个字符串改正的方法。本贴子以“现状”供给且没有任何担保,同时也没有授与任何权益Thispostingisprovided"ASIS"withnowarranties,andconfersnorights.postedon2006-04-0120:36DflyingChen阅读(6522)谈论(41)编写珍藏引用网摘所属分类:.NET综合、C#谈论:re:C#面试基础问题2006-04-0214:35|PhoenixHuang90%是面向对象设计的问题。答复更多谈论#re:C#面试基础问题2006-04-0214:48|DflyingChen@PhoenixHuang是的,自然这些也观察了C#的语言基础。答复更多谈论#re:C#面试基础问题2006-04-0217:15|林子不错!可是假如答案假如能再OO一些那就现好了!答复更多谈论re:C#面试基础问题2006-04-0218:29|DflyingChen@林子欢迎您提出改正的建议:)答复更多谈论#re:C#面试基础问题2006-04-0222:41|装置脑袋有几道题的答案错误,列出来供你面试时参照:C#支持多重继承么?答案是类之间不支持,接口之间支持。类对接口叫做实现,不叫继承。6请描绘一下修饰符protectedinternal。正确答案是,在同一个Assembly中,他的接见级别和public相同,而跨Assembly接见时,他的接见级别同protected相同。即protected的范围+internal的范围。能够将非静态的方法覆写成静态方法么?答案并无大错,不过静态方法根本无override看法,属于惹起疑惑的问题能够阻挡某一个类被其余类继承么?答案没错,可是假如应试者提到将所有结构函数的接见级别都设为Private或子类没法接见到的其余级别(Assembly外的internal),也有相同的成效。能够实现同意某个类被继承,但不一样意此中的某个方法被覆写么?相同是可能惹起疑惑的题。因为默认(不带virtual)的方法就是不可以被override的。带sealed的方法必然是被override过的。接口和抽象类的差异是什么?还有一个简单被忽视的差异,C#不一样意接口带有静态成员,尽管这不是.NET的限制。23const和readonly有什么差异?还有一些差异,当应试者提到时你不可以说是错的:作字段时const隐含静态,const能够是局部的,readonly能够在结构函数中初始化等。答复更多谈论re:C#面试基础问题2006-04-0309:32|DflyingChen@装置脑袋C#支持多重继承么?答案是类之间不支持,接口之间支持。类对接口叫做实现,不叫继承。inheritaninterface没有什么不当,为何中文就不可以够?6请描绘一下修饰符protectedinternal。--正确答案是,在同一个Assembly中,他的接见级别和public相同,而跨Assembly接见时,他的接见级别同protected相同。即protected的范围+internal的范围。同一个Assembly中依旧是protected,您能够查阅一下有关资料。能够将非静态的方法覆写

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论