能够使目标实现的优点:求x、y值,使x+y的值最小

先在坐标系中画出4X-5Y+21=0、X-3Y+7=0、2X+Y+7=0的三条直線,再找出其不等式表示的范围,再将Z=3X-2Y化为y=3/2X-1/2Z,则求Z的最大值和最小值就是求y=3/2x-1/2z的纵截距的最大值和最小值,你再看看能不能算出来,
同学,这应该是高中數学的基础题吧,不要什么题都问,先自己思考思考,学会自己找答案

1、计算机网络共享的资源是计算機的软件硬件与数据

2、早期ARPANET 中使用的IMO从功能上看相当于目前广泛使用的路由器

3、关于计算机网络形成的标志性成果的描述中错误的是哦迉参考模型为网络协议的研究提供了理

5、对ARPANET研究工作的描述错误的是提出了ipv6地址的划分方法

6、以下关于物联网技术的描述中错误的是物联網的应用可以缓解ip地址匮乏问题

7、以下关于无线网络技术特点的描述中错误的是WMAN不需要有基站

8、以下关于计算机网络定义药店的描述中错誤的是联网计算机之间的通信必须遵循TCP/IP

9、以下属于定义中错误的是“intranet”是依据osi参考模型与协议组建的计算机网络

10、以下关于网络拓扑的描述中错误的是网络拓扑研究的是资源子王中节点的结构关系问题

11、以下关于网络分类的描述中错误的是连接用户计算机身边10m之内计算机等數字终端设备的

12、以下关于广域网特征的描述中错误的是广域网的核心技术是线路交换技术

13、以下关于网络城域网的描述中错误的是第二層交换机是宽带城域网的核心设备

14、以下关于局域网特征的描述中错误的是提供高数据传输速率(1.544~51.84Mbps)、低误码率

15、以下关于蓝牙技术的描述中错误的是与IEEE 802.15.4标准兼容

16、以下关于ZigBee技术特点的描述中错误的是与IEEE802.15.4的MAC层协议不兼容

17、以下关于ISP概念的描述中错误的是第一层的国家服务提供商NSP是由ISOC批准的

18、以下关于internet核心交换与边缘部分结构特点的描述中错误的是边缘部分的段系统是由路

19、以下关于环状拓扑结构特点的描述Φ错误的是环中数据可以沿两个方向逐站传送

20、以下关于数据报传输方式的特点的描述中错误的是数据报方式适用于长报文、会话式通信

1.鉯下关于网络协议与协议要素的描述正确的是A

A.协议表示网络功能是什么

B.语义表示是要做什么

2.以下关于网络体系结构概念的描述中错误的是B

A.網络体系结构是网络层次结构模型与各层协议的集合

B.所有的计算机网络都必须遵循0SI体系结构

C.网络体系结构是抽象的,而实现网络协议的技術是具体的

D.网络体系结构对计算机网络应该实现的功能进行精确定义

3.以下关于网络体系结构的研究方法优点的描述中错误的是C

C.允许隔层通信是0SI参考模型灵活性的标志

D.实现技术的变化都不会对整个系统工作产生影响

4.以下关于0SI参考樽型的基本概念的描述中错误的是A

A.术语"0SI参考模型"Φ的开放是指可以用于任何一种计算机的操作系统

B.0SI参考模型定义了开放系统的层次结构层次之间的相互关系

C.0SI的服务定义详细地说明了各層所提供的服务,不涉及接口的具体实现方法

D.0SI参考模型不是一个标准.而是一种在制定标准时所使用的概念性的框架

command 命令对象指示要执行的命令和存储过程!
datareader
是一个向前的只读的数据流。
dataadapter
是功能强大的适陪器支持增删改查的功能
dataset
是一个数据级对象,相当与内存中的一张表或多张表

頁面之间传递值的几种方式

QueryString,Session的了解的熟练程度)中读写数据库需要用到哪些类?他们的作用

sqlconnection 连接数据库,sqlcommand 执行T-SQL语句或存储过程的身份验證方式有哪些?分别是什么原理

Service时,为了符合Web Service标准所有你使用的数据类型都必须被转换为XSD类型。如想让它使用在不同平台和不同软件嘚不同组织间传递还需要用某种东西将它包装起来。这种东西就是一种协议如

有时可能需要控件中具有内置 Web 用户控件与完整的 页相似嘚方式创建用户控件,然后向其中添加所需的标记和子控件用户控件可以像页面一样包含对其内容进行操作(包括执行数据绑定等任务)的代码。

用户控件中没有 htmlbody form 元素这些元素必须位于宿主页中。

可以在用户控件上使用与在 Framework 提供了一个称为公共语言运行库的运行时環境它运行代码并提供使开发过程更轻松的服务。CLS公共语言规范要和其他对象完全交互而不管这些对象是以何种语言实现的,对象必須只向调用方公开那些它们必须与之互用的所有语言的通用功能为此定义了公共语言规范 (CLS),它是许多应用程序所需的一套基本语言功能强类型C# 是强类型语言;因此每个变量和对象都必须具有声明类型。

中常用的对象有哪些分别描述一下。

中通过ASPX页面指向CS文件的方法实現显示逻辑和处理逻辑的分离这样有助于web应用程序的创建。比如分工美工和编程的可以个干各的,不用再像以前asp那样都代码和html代码混茬一起难以维护。

   .NET Framework 的垃圾回收器管理应用程序的内存分配和释放每次您使用 new 运 算符创建对象时,运行库都从托管堆为该对象分配内存只要托管堆中有地址空间可用,运行库就会继续为新对象分配空间但是,内存不是无限大的最终,垃圾 回收器必须执行回收以释放┅些内存垃圾回收器优化引擎根据正在进行的分配情况确定执行回收的最佳时间。当垃圾回收器执行回收时它检查托管堆中不再被应 鼡程序使用的对象并执行必要的操作来回收它们占用的内存。

 Web 应用程序的配置信息(如最常用的设置新建一个Web应用程序后默认情况下会茬根目录自动创建一个默认的 身份验证支持(为WindowsFormsPassPortNone四种)。该元素只能在计算机、站点或应用程序级别声明 元素必需与 节配合使用。示例:以下示例为基于窗体(Forms)的身份验证配置站点当没有登陆的用户访问需要身份验证的网页,网页自动跳转到登陆网页  其中元素loginUrl表示登陆网页的名称,name表示Cookie名称2 节作用:控制对 URL 资源的客户端访问(如允许匿名用户访问)此元素可以在任何级别(计算机、站点、应用程序、子目录或页)上声明。必需与 节配合使用3节作用:配置  应用程序提供有关自定义错误信息的信息。它不适用于 XML Web services 中发生的錯误5节作用:配置  跟踪服务,主要用来程序测试判断哪里出错

中的web页面与其隐藏类之间的关系?

一个页面的声明中指定了隐藏类例洳一个页面   页面框架管理的一个隐藏的窗体字段当 页面框架将解析ViewState字符串,并为该页面和各个控件填充 ViewState属性然后,控件再使用 ViewState 数据将洎己重新恢复为以前的状态
5
1.当发现不能读取页面上的输入的数据时很有可能是什么原因造成的怎么解决

很有可能是在Page_Load中数据处理时没有進行PageIsPostBack属性判断52.请解释一个WEB页面中代码执行次序。

1)控件的Init事件

2)控件所在页面的Init事件

3)控件所在页面的Load事件

4)控件的Load事件

1Init事件从最里媔的控件(包括用户控件及普通控件)向最外面的控件(页面)引发LoadPreRender等其他事件从最外面的控件向最里面的控件引发;

2)控件之间相哃事件的执行顺序依控件在页面的位置按从左到右,从上到下的先后顺序执行

1)切记用户控件也被视为页面中的一个控件;

2)把用户控件作为单独的一个特殊页面来看,它本身及其所包含的控件同样遵守相同的规律;

3)有时在客户端程序(如javascript)中会用到客户端body对像的onload事件注意这个客户端事件是最后执行,即在服务器端所有事件执行完后才执行. 53.请解释什么是上下文对象在什么情况下要使用上下文对象

54.请解释转发与跳转的区别?

转发就是服务端的跳转A页面提交数据到B页面,B页面进行处理然后从服务端跳转到其它页面跳转就是指客户端的跳转

哆层应用程序中层与层之间以那几种方式进行数据传递并解释你自己的项目中采用那

自定义类结构传数据58.如果需要在GridView控件中的某一列中添加下拉列表框并绑定数据怎么解决?

后台的Rowdatabound事件可以进行绑定比如这样

传统的数据绑定是一种“连接数据绑定”,即在数据绑定期间客户端一直保持与数据库的连接,这种状态下数据库的性能大受影响。B/S结构的系统您是用几层结构来开发,每一层之间的关系以忣为什么要这样分层

数据访问层,业务层表示层。数据访问层对数据库进行增删查改业务层一般分为二层,业务表观层实现与表示層的沟通业务规则层实现用户密码的安全等。表示层为了与用户交互例如用户添加表单优点:分工明确,条理清晰易于调试,而且具有可扩展性缺点:增加成本。

相比C++最值得称赞的是他的GC(垃圾回收机制)GC会在系统空闲或内存不足的时候自动回收不再被使用的对潒。因此我们不再需要向C++编程一样处处小心内存泄漏。同时为了提高内存的使用效率,GC在回收内存的时候会对内存进行整理,有些類似硬盘整理的原理从而导致对象被在内存中移位。

80.维护数据库的完整性、一致性、你喜欢用触发器还是自写业务逻辑为什么

   尽可能鼡约束(包括CHECK、主键、唯一键、外键、非空字段)实现,这种方式的效率最好;其次用触发器这种方式可以保证无论何种业务系统访问數据库都能维持数据库的完整性、一致性;最后再考虑用自写业务逻辑实现,但这种方式效率最低、编程最复杂当为下下之策。

81.则以DataSet表礻Recordset看起来更像单表,如果让Recordset以多表的方式表示就必须在SQL中进行多表连接反之,DataSet可以是多个表的集合ADO 的运作是一种在线方式,这意味著不论是浏览或更新数据都必须是实时的会利用XML制作数据的一份幅本,基于XML格式数据类型更为丰富并且不需要再做COM编排导致的数据类型转换,从而提高了整体性能

82.C#中要使一个类支持FOREACH遍历,实现过程怎样

若要循环访问集合,集合必须满足特定的要求例如,在下面的 foreach 語句中:

Enumerator 类型(类或结构)必须包含:

一个名为 Current 的属性它返回 ItemType 或者可以转换为此类型的类型。属性访问器返回集合的当前元素

一个名為 MoveNext bool 方法,它递增项计数器并在集合中存在更多项时返回 true

有三种使用集合的方法:

中所有的自定义用户控件都必须继承自

中所有可序列囮的类都被标记为_____

110..当类T只声明了私有实例构造函数时,则在T的程序文本外部___不可以___(可以

直接创建T的任何实例。111.下面这段代码有错误么

1中,类Forms认证模式下怎样用代码(用户名单存在数据库中,而不是WebConfig中)

实现一个基于角色的授权138.的主要对象以及他们的作用。
143.你編写一段程序来判断服务器请求是get,还是post请求

URL 重写是截取传入 Web 请求并自动将请求重定向到其他 URL 的过程.146. 中是新的功能,所以浏览器和代理服務器不支持

2、分段缓存有另外一个在页面缓存中没有的特性——VaryByControlVaryByControl特性允许指定一个由分号分隔的字符串列表代表用户控件内使用的控件的名称;

 Block?说说它们分别都是什么
150.如何实现XML系列化(给出简单的代码示例)

XML 序列化只会将对象的公用字段和属性值序列化为 XML 数据流。

XML 序列化不会转换方法、索引子、私用字段或只读属性 (只读集合则除外)若要序列化对象的所有字段和属性

分布式处理方式,Windows操作系统中,是将应用程序分离为单独的进程这个进程形成了应用程序代码和数据周围的一道边界。如果不采用进程间通信(RPC)机制则在一个进程中执行的代码就不能访问另一进程。这是一种操作系统对应用程序的保护机制然而在某些情况下,我们需要跨过应用程序域与另外嘚应用程序域进行通信,即穿越边界.

Services这四个中接触过多少能否简要的介绍

157.可否简要的介绍 应用程序中,以验证使用者认证并管理使用鍺设定,例如密码和电子邮件地址Membership 类别,以提供验证使用者的便利机制

Membership 类别提供多项功能,以供进行:建立新使用者

将成员资格信息 (使用者名称、密码、电子邮件地址,以及支持数据) 存放于 Microsoft SQL Server 或替代数据存放区中

验证造访您网站的使用者。您可以透过程序设计方式验證使用者您也可以使用 Login 控件,建立需要少数或不需要程序代码的完整验证系统

管理密码,其中包括建立、变更、撷取及重设等动作。您也可以选择设定 Web 组件是用于建立网站的整合式控件集合可让使用者直接从浏览器修改 Web 网页的内容、外观和行为。这些修改可以套用臸网站上的所有使用者或个别使用者当使用者修改页面和控件时,可以储存这些设定以保留使用者的个人偏好设定,在未来的浏览器笁作阶段 (Session) 使用这个功能称为个人化。这些 Web 组件能力让开发人员可以授权使用者动态地个人化 Web 应用程序而不需要开发人员或管理员介入。

藉由使用 Web 组件控件集合开发人员可让使用者执行下列功能:

个人化页面内容。使用者可以将新的 Web 组件控件加入至页面或是移除、隐藏或最小化控件,如同使用普通窗口一样

个人化页面配置。使用者可以将 Web 组件控件拖曳至页面上的不同区域或变更其外观、属性和行為。

汇出和汇入控件使用者可以汇入或汇出 Web 组件控件设定以用于其它页面或网站,并保留控件中的属性、外观或甚至数据如此可让使鼡者减少数据输入和组态设定的需要。

建立连接使用者可以在控件间建立连接,例如图表控件可以将股票行情实时广告牌控件中的数據显示为图表。使用者不但能个人化连接本身也能个人化图表控件显示数据之外观和细节的方式。

管理和个人化网站层级设定授权的使用者可以设定网站层级设定,决定谁可以存取网站或网页以及设用者共享,并防止不是管理员的使用者个人化共享的控件

与区域变量不同的是,外部变量的存留期会延续直到参考匿名方法的委派可进行内存回收为止。n 的参考是在建立委派时所撷取

将程序代码区块當做委派参数传递的一种方式

藉由使用匿名方法,您无须另外建立方法因而可以减少在执行个体化委派时所需要另外撰写的程序代码。

匿名方法不能存取外部范围的 ref out 参数

类库中要同时存在这2个类?

StringBuilder 串连作业只有在 StringBuilder 对象缓冲区太小而无法容纳新数据时才会配置内存。洇此如果要串连固定数目的 String 对象,最好使用 String 类别的串连作业在这种情况下,编译器甚至可能将个别的串连作业结合成一个单一作业洳果要串连任意数目的字符串 (例如,如果循环串连任意数目的使用者输入字符串)则对于串连作业来说最好使用 StringBuilder

应用程序,公司考虑使用Windows身份认证所有的用户都存在于AllWin这个域中。您想要使用下列认证规则来配置这个应用程序:

应用程序用于运行AllWin公司内部的Web站点这个应用程序包含了50个页面。

您想要配置这个应用程序以便当发生一个HTTP代码错误时它可以显示一个自定义的错误页面给用户

您想要花最小的代价唍成这些能够使目标实现的优点,您应该怎么做(多选)(  AD)

195您为AllWin公司创建了一个标签中选择采用委托实现的事件模型与JAVA中采用接口实现的事件模型有什么区别,以图示方式解释

事件是对象发送的消息,以发信号通知操作的发生操作可能是由用户交互(例如鼠标单击)引起的,也可能是由某些其他的程序逻辑触发的引发(触发)事件的对象叫做事件发送方。捕获事件并对其作出响应的对象叫做事件接收方

茬事件通信中,事件发送方类不知道哪个对象或方法将接收到(处理)它引发的事件所需要的是在源和接收方之间存在一个媒介(或类姒指针的机制)。.NET Framework 定义了一个特殊的类型(Delegate)该类型提供函数指针的功能。

委托是一个可以对方法进行引用的类与其他的类不同,委託类具有一个签名并且它只能对与其签名匹配的方法进行引用。这样委托就等效于一个类型安全函数指针或一个回调。这里只讨论委託的事件处理功能

观察者模式(Observer)是对象的行为模式,又称:

?观察者模式定义了一个一对多的依赖关系让一个或多个观察者对象监察┅个主题对象

?这样一个主题对象在状态上的变化能够通知所有的依赖于此对象的那些观察者对象使这些观察者对象能够自动更新

4.请解释接口的显式实现有什么意义?

接口可以有静态成员、嵌套类型、抽象、虚拟成员、属性和事件实现接口的任何类都必须提供接口中所声明的抽象成员的定义。接口可以要求任何实现类必须实现一个或多个其他接口

接口可以用任何可访问性来声明,但接口成员必须全嘟具有公共可访问性

不能向成员或接口自身附加安全性限制。

接口可以定义类构造函数但不能定义实例构造函数。

每种语言都必须为需要成员的接口映射一个实现提供规则因为不只一个接口可以用相同的签名声明成员,且这些成员可以有单独的实现

为了实现接口,類或结构可以声明“显式接口成员实现”显式接口成员实现就是一种方法、属性、事件或索引器声明,它使用完全限定接口成员名称作為标识符

某些情况下,接口成员的名称对于实现该接口的类可能是不适当的此时,可以使用显式接口成员实现来实现该接口成员例洳,一个用于“文件抽象”的类一般会实现一个具有释放文件资源作用的 Close 成员函数同时还可能使用显式接口成员实现来实现接口的方法

茬方法调用、属性访问或索引器访问中,不能直接访问“显式接口成员实现”的成员即使用它的完全限定名也不行。“显式接口成员实現”的成员只能通过接口实例访问并且在通过接口实例访问时,只能用该接口成员的简单名称来引用

显式接口成员实现中包含访问修飾符属于编译时错误,而且如果包含 abstractvirtualoverride static 修饰符也属于编译时错误

显式接口成员实现具有与其他成员不同的可访问性特征。由于显式接口成员实现永远不能在方法调用或属性访问中通过它们的完全限定名来访问因此,它们似乎是 private(私有的)但是,因为它们可以通过接口实例来访问所以它们似乎又是 public(公共的)。

显式接口成员实现有两个主要用途:

由于显式接口成员实现不能通过类或结构实例来访問因此它们就不属于类或结构的自身的公共接口。当需在一个公用的类或结构中实现一些仅供内部使用(不允许外界访问)的接口时這就特别有用。

显式接口成员实现可以消除因同时含有多个相同签名的接口成员所引起的多义性如果没有显式接口成员实现,一个类或結构就不可能为具有相同签名和返回类型的接口成员分别提供相应的实现也不可能为具有相同签名和不同返回类型的所有接口成员中的任何一个提供实现。

为了使显式接口成员实现有效声明它的类或结构必须在它的基类列表中指定一个接口,而该接口必须包含一个成员该成员的完全限定名、类型和参数类型与该显式接口成员实现所具有的完全相同。

  • 提供一个一致的面向对象的编程环境而无论对象代碼是在本地存储和执行,还是在本地执行但在 Internet 上分布或者是在远程执行的。
  • 提供一个将软件部署和版本控制冲突最小化的代码执行环境
  • 提供一个保证代码(包括由未知的或不完全受信任的第三方创建的代码)安全执行的代码执行环境。
  • 提供一个可消除脚本环境或解释环境的性能问题的代码执行环境
  • 使开发人员的经验在面对类型大不相同的应用程序(如基于 Windows 的应用程序和基于 Web 的应用程序)时保持一致。
  • 按照工业标准生成所有通信以确保基于 .NET Framework 的代码可与任何其他代码集成。

基础您可以将运行库看作一个在执行时管理代码的代理,它提供核心服务(如内存管理、线程管理和远程处理)而且还强制实施严格的类型安全以及可确保安全 性和可靠性的其他形式的代码准确性。事实上代码管理的概念是运行库的基本原则。以运行库为能够使目标实现的优点的代码称为托管代码而不以运行库为能够使目标实現的优点的代码称为非托管 代码。.NET Framework 的另一个主要组件是类库它是一个综合性的面向对象的可重用类型集合,您可以使用它开发多种应用程序这些应用程序包括传统的命令行或图形用户界面 (GUI) 应用程序,也包括基于 Framework 可由非托管组件承载这些组件将公共语言运行库加载到它們的进程中并启动托管代码的执行,从而创建一个可以同时利用托管和非托管功能的软件环境.NET Framework 不但提供若干个运行库宿主,而且还支持苐三方运行库宿主的开发

例如, 直接使用运行库以启用 Framework 环境

下面的章节将更加详细地描述 .NET Framework 的主要组件和功能

公共语言运行库管理内存、线程执行、代码执行、代码安全验证、编译以及其他系统服务。这些功能是在公共语言运行库上运行的托管代码所固有的

至于安全性,取决于包括托管组件的来源(如 Internet、企业网络或本地计算机)在内的一些因素托管组件被赋予不同程度的信任。这意味着即使用在同一活动应用程序中托管组件既可能能够执行文件访问操作、注册表访问操作或其他须小心使用的功能,也可能不能够执行这些功能

运行庫强制实施代码访问安全。例如用户可以相信嵌入在 Web 页中的可执行文件能够在屏幕上播放动画或唱歌,但不能访问他们的个人数据、文件系统或网络这样,运行库的安全性功能就使通过 Internet 部署的合法软件能够具有特别丰富的功能

运行库还通过实现称为通用类型系统 (CTS) 的严格类型验证和代码验证基础结构来加强代码可靠性。CTS 确保所有托管代码都是可以自我描述的各种 Microsoft 和第三方语言编译器生成符合 CTS 的托管代碼。这意味着托管代码可在严格实施类型保真和类型安全的同时使用其他托管类型和实例

此外,运行库的托管环境还消除了许多常见的軟件问题例如,运行库自动处理对象布局并管理对对象的引用在不再使用它们时将它们释放。这种自动内存管理解决了两个最常见的應用程序错误:内存泄漏和无效内存引用

运行库还提高了开发人员的工作效率。例如程序员可以用他们选择的开发语言编写应用程序,却仍能充分利用其他开发人员用其他语言编写的运行库、类库和组件任何选择以运行库为能够使目标实现的优点的编译器供应商都可鉯这样做。以 .NET Framework 为能够使目标实现的优点的语言编译器使得用该语言编写的现有代码可以使用 .NET Framework 的功能这大大减轻了现有应用程序的迁移过程的工作负担。

尽管运行库是为未来的软件设计的但是它也支持现在和以前的软件。托管和非托管代码之间的互操作性使开发人员能够繼续使用所需的 COM 组件和 DLL

运行库旨在增强性能。尽管公共语言运行库提供许多标准运行库服务但是它从不解释托管代码。一种称为实时 (JIT) 編译的功能使所有托管代码能够以它在其上执行的系统的本机语言运行同时,内存管理器排除了出现零碎内存的可能性并增大了内存引用区域以进一步提高性能。

(IIS))承载此基础结构使您在享受支持运行库宿主的行业最佳企业服务器的优越性能的同时,能够使用托管代碼编写业务逻辑

.NET Framework 类库是一个与公共语言运行库紧密集成的可重用的类型集合。该类库是面向对象的并提供您自己的托管代码可从中导絀功能的类型。这不但使 .NET Framework 类型易于使用而且还减少了学习 .NET Framework 的新功能所需要的时间。此外第三方组件可与 .NET Framework 中的类无缝集成。

例如.NET Framework 集合類实现一组可用于开发您自己的集合类的接口。您的集合类将与 .NET Framework 中的类无缝地混合

.NET Framework 类型使您能够完成一系列常见编程任务(包括诸如字苻串管理、数据收集、数据库连接以及文件访问等任务)。除这些常见任务之外类库还包括支持多种专用开发方案的类型。例如可使鼡 .NET Framework 开发下列类型的应用程序和服务:

  • Web 窗体应用程序,可使用 Web

    客户端应用程序在基于 Windows 的 编程中最接近于传统风格的应用程序这些是在桌面仩显示窗口或窗体从而使用户能够执行任务的应用程序类型。客户端应用程序包括诸如字处理程序和电子表格等 应用程序还包括自定义嘚业务应用程序(如数据输入工具、报告工具等等)。客户端应用程序通常使用窗口、菜单、按钮和其他 GUI 元素并且它们可能访问本地资源(如文件系统)和外围设备(如打印机)。

    窗体控件所替代)此应用程序非常类似于其他客户端应用程序:它在本机执行,可以访问夲地资源并包含图形元素。

    Visual Basic?)一起使用来创建这样的应用程序.NET Framework 将这些现有产品的特点合并到了单个且一致的开发环境中,该环境大大簡化了客户端应用程序的开发

    包含在 .NET Framework 中的 Windows 窗体类旨在用于 GUI 开发。您可以轻松创建具有适应多变的商业需求所需的灵活性的命令窗口、按鈕、菜单、工具栏和其他屏幕元素

    例如,.NET Framework 提供简单的属性以调整与窗体相关联的可视属性某些情况下,基础操作系统不支持直接更改這些属性而在这些情况下,.NET Framework 将自动重新创建窗体这是 .NET Framework 集成开发人员接口从而使编码更简单更一致的许多方法之一。

    ActiveX 控件不同Windows 窗体控件具有对用户计算机的不完全受信任的访问权限。这意味着二进制代码或在本机执行的代码可访问用户系统上的某些资源例如 GUI 元素和訪问受限制的文件,但这些代码不能访问或危害其他资源由于具有代码访问安全性,许多曾经需要安装在用户系统上的应用程序现在可鉯通过 Web 安全地部署您的应用程序可以在像 Web 页那样部署时实现本地应用程序的功能。

    在托管领域中服务器端应用程序是通过运行库宿主實现的。非托管应用程序承载公共语言运行库后者使您的自定义托管代码可以控制服务器的行为。此模型在获得主服务器的性能和可伸縮性的同时提供给您公共语言运行库和类库的所有功能

    下面的插图显示在不同服务器环境中运行托管代码的基本网络架构。在应用程序邏辑通过托管代码执行时服务器(如 IIS SQL Server)可执行标准操作。

    Framework 开发基于 Web 的应用程序的宿主环境但是, 用作应用程序的发布机制并且两鍺在 .NET Framework 中都具有支持类集合。

    XML Web services 作为基于 Web 的技术的重要发展是类似于常见 Web 站点的分布式服务器端应用程序组件。但是与基于 Web 的应用程序不哃,XML services 由旨在供其他应用程序使用的可重用的软件组件组成所谓的其他应用程序包括:传统的客户端应用程序,基于 Web 的应用程序甚至是其他 XML Web

    如果您使用过 ASP 技术的早期版本,很快就会注意到 Framework 的任何语言开发 Web 窗体页此外,您的代码不再需要与 HTTP 文本共享同一个文件(尽管如果您愿意代码还可以继续这样做)。Web 窗体页用本机语言执行这是因为与所有其他托管应用程序一样,它们充分利用运行库与此相对照,非托管 ASP 页始终被写成脚本并解释 Framework SOAP(一种远程过程调用协议)、XML(一种可扩展的数据格式)和 WSDLWeb 服务描述语言)这些标准生成的。基于這些标准生成 .NET

    的客户端这些源代码可以创建从类库中的类派生的类,这些类使用 SOAP XML 分析处理所有基础通信虽然您可以使用类库来直接使用 XML Web servicesWeb 服务描述语言工具和包含在 SDK 中的其他工具可以使您更加方便地用 .NET Framework 进行开发

    XML)的类。使用这些类使您能够将注意力集中在服务的逻輯上而无需关注分布式软件开发所需要的通信基础结构。

    最后与托管环境中的 Web 窗体页相似,您的 XML Web services 将使用 IIS 的可伸缩通信以本机语言的速喥运行

    Visual J# .NET 全都使用相同的集成开发环境 (IDE),该环境允许它们共享工具并有助于创建混合语言解决方案另外,这些语言利用了 .NET Framework 的功能此框架提供对简化

    ref方法参数关键字使方法引用传递到方法的同一个变量。当控制传递回调用方法时在方法中对参数所做的任何更改都将反映茬该变量中。若要使用 ref 参数必须将参数作为 ref 参数显式传递到方法。ref 参数的值被传递到 ref 参数传递到 ref 参数的参数必须最先初始化。将此方法与 out 参数相比后者的参数在传递到 out 参数之前不必显式初始化。属性不是变量不能作为 ref 参数传递。如果两种方法的声明仅在它们对 ref 的使鼡方面不同则将出现重载。但是无法定义仅在 ref out 方面不同的重载

    关键字使方法引用传递到方法的同一个变量。当控制传递回调用方法時在方法中对参数所做的任何更改都将反映在该变量中。当希望方法返回多个值时声明 out 方法非常有用。使用 out 参数的方法仍然可以返回┅个值一个方法可以有一个以上的 out 参数。若要使用 out 参数必须将参数作为 out 参数显式传递到方法。out 参数的值不会传递到 out 参数不必初始化莋为 out 参数传递的变量。然而必须在方法返回之前为 out 参数赋值。属性不是变量不能作为 out 参数传递。如果两个方法的声明仅在 out 的使用方面鈈同则会发生重载。不过无法定义仅在 ref out 方面不同的重载。

    8.值类型与引用类型有什么不同请举例说明?并分别列举几种相应的数據类型

         大多数编程语言提供内置的数据类型(比如整数和浮点数),这些数据类型会在作为参数传递时被复制(即它们通过值来传递)。在 .NET Framework 中这些称为值类型。运行库支持两种值类型:

    统一了结构和类的语法结果就是两个实体都支持大多数的相同功能。但是在结構和类之间还有着重要的区别。

    结构和类在以下方面相同:

    • 两者都属于“容器”类型表示它们可以包含其他类型作为成员。
    • 两者都具有荿员成员可以包括构造函数、方法、属性、字段、常数、枚举、事件和事件处理程序。
    • 两者的成员都具有单独的可访问性例如,一个荿员可以声明为 Public而另一个可以声明为 Private
    • 都有共享的构造函数有或没有参数。
    • 两者都可以公开默认属性只要该属性至少带有一个参数。
    • 两者都可以声明和引发事件而且两者都可以声明委托。

    结构和类在以下方面有所不同:

    • 结构是值类型而类是引用类型。
    • 结构使用堆棧分配类使用堆分配。
    • 所有的结构成员都默认为 Public;类变量和常量默认为 Private而其他的类成员默认为 JScript)用来实现隐式晚期绑定的基础结构。綁定是查找与唯一指定的类型相对应的声明(即实现)的过程由于此过程在运行时而不是在编译时发生,所以称作晚期绑定Visual Basic .NET 允许您在玳码中使用隐式的晚期绑定;Visual Basic 编译器将调用一个帮助器方法,该方法使用反射来获取对象类型传递给帮助器方法的参数有助于在运行时調用正确的方法。这些参数包括:对其调用方法的实例(对象)被调用方法的名称(字符串),以及传递给被调用方法的参数(对象数組)

      13.请解释流与文件有什么不同?

      集成了异步支持其默认实现根据其相应的异步方法来定义同步读取和写入,反之亦然所有表示鋶的类都是从 Stream 类继承的。Stream 类及其派生类提供数据源和储存库的一般视图使程序员不必了解操作系统和基础设备的具体细节。

      • 可以从流读取读取是从流到数据结构(如字节数组)的数据传输。
      • 可以向流写入写入是从数据源到流的数据传输。
      • 流可以支持查找查找是对流內的当前位置进行查询和修改。

      根据基础数据源或储存库流可能只支持这些功能中的一部分。例如NetworkStreams 不支持查找。Stream

      类来执行大多数典型的文本文件操作例如读取、写入、追加、复制、删除、移动或重命名。还可以使用 FileObject 来检查并(在某些情况下)设置文件属性、编码和蕗径信息FileFileInfoPathDirectory DirectoryInfo 是密封类。可以创建这些类的新实例但它们不能有派生类。

      用程序的生成块;程序集构成了部署、版本控制、重复使用、激活范围控制和安全权限的基本单元程序集是为协同工作而生成的类型和资源的集合,这些类型和资 源构成了一个逻辑功能单元程序集为公共语言运行库提供它识别类型实现所需的信息。对于运行库类型不存在于程序集上下文之外。

      程序集是 .NET Framework 编程的基本组成部汾程序集执行以下功能:

      • 包含公共语言运行库执行的代码。如果可移植可执行 (PE) 文件没有相关联的程序集清单则将不执行该文件中的 Microsoft 中間语言 (MSIL) 代码。请注意每个程序集只能有一个入口点(即
      • 程序集形成安全边界。程序集就是在其中请求和授予权限的单元程序集形成类型边界。每一类型的标识均包括该类型所驻留的程序集的名称
      • 程序集形成引用范围边界。程序集的清单包含用于解析类型和满足资源请求的程序集元数据它指定在该程序集之外公开的类型和资源。该清单还枚举它所依赖的其他程序集
      • 程序集形成版本边界。程序集是公囲语言运行库中最小的可版本化单元同一程序集中的所有类型和资源均会被版本化为一个单元。程序集的清单描述您为任何依赖项程序集所指定的版本依赖性
      • 程序集形成部署单元。当一个应用程序启动时只有该应用程序最初调用的程序集必须存在。其他程序集(例如夲地化资源和包含实用工具类的程序集)可以按需检索这就使应用程序在第一次下载时保持精简。
      • 程序集是支持并行执行的单元
      • 程序集可以是静态的或动态的。静态程序集可以包括 .NET Framework 类型(接口和类)以及该程序集的资源(位图、JPEG 文件、资源文件等)。静态程序集存储茬磁盘上的可移植可执行 (PE) 文件中您还可以使用 .NET Framework 来创建动态程序集,动态程序集直接从内存运行并且在执行前不存储到磁盘上您可以在執行动态程序集后将它们保存在磁盘上。

      中提供的工具来创建带有在其他开发环境中创建的模块的程序集您还可以使用公共语言运行库 API(例如 Framework 中,异常是从 Exception 类类继承的对象异常从发生问题的代码区域引发,然后沿堆栈向上传递直到应用程序处理它或程序终止。

      运行库使用基于异常对象和受保护代码块的异常处理模型发生异常时,创建一个 Exception 对象来表示该异常

      运行库为每个可执行文件创建一个异常信息表。在异常信息表中可执行文件的每个方法都有一个关联的异常处理信息数组(可以为空)。数组中的每一项描述一个受保护的代码塊、任何与该代码关联的异常筛选器和任何异常处理程序(Catch 语句)此异常表非常有效,在没有发生异常时在处理器时间或内存使用上沒有性能损失。仅在异常发生时使用资源

      异常信息表对于受保护的块有四种类型的异常处理程序:

      • Finally 处理程序,它在每次块退出时都执行不论退出是由正常控制流引起的还是由未处理的异常引起的。
      • 错误处理程序它在异常发生时必须执行,但在正常控制流完成时不执行
      • 类型筛选的处理程序,它处理指定类或该类的任何派生类的任何异常
      • 用户筛选的处理程序,它运行用户指定的代码来确定异常应由關联的处理程序处理还是应传递给下一个受保护的块。

      每种语言根据自己的规范实现这些异常处理程序例如,Visual Basic .NET 通过 Catch 语句中的变量比较(使用 When 关键字)提供对用户筛选的处理程序的访问;C# 不实现用户筛选的处理程序

      异常发生时,运行库开始执行由下列两步组成的过程:

      Framework 操莋都通过引发异常来指示出现错误

      传统上,语言的错误处理模型依赖于语言检测错误和查找错误处理程序的独特方法或者依赖于操作系统提供的错误处理机制。运行库实现的异常处理具有下列特点:

      • 处理异常时不考虑生成异常的语言或处理异常的语言
      • 异常处理时不要求任何特定的语言语法,而是允许每种语言定义自己的语法
      • 允许跨进程甚至跨计算机边界引发异常。

      与其他错误通知方法(如返回代码)相比异常具有若干优点。不再有出现错误而不被人注意的情况无效值不会继续在系统中传播。不必检查返回代码可以轻松添加异瑺处理代码,以增加程序的可靠性最后,运行库的异常处理比基于 Windows C++

      由于执行线程例行地遍历托管代码块和非托管代码块因此运行库鈳以在托管代码或非托管代码中引发或捕捉异常。非托管代码可以同时包含 C++ 样式的 SEH 异常和基于 COM

      16.委托与事件是什么关系为什么要使用委托?

      中函数指针的用途与函数指针不同,委托实例独立于它所封装的方法的类;最主要的是那些方法与委托的类型是兼容的另外,函数指针只能引用静态函数而委托可以引用静态和实例方法。委托主要用于 .NET Framework 中的事件处理程序和回调函数

      委托适用于那种在某些其他語言中需用函数指针来解决的情况(场合)。但是与函数指针不同,委托是面向对象和类型安全的delegate 声明定义一种引用类型,该类型可鼡于将方法用特定的签名封装委托实例封装静态方法或实例方法。委托大致类似于 C++ 中的函数指针委托声明定义一个类,它是从 Framework 中的事件是基于委托模型的

      event 关键字使您得以指定当代码中的某些“事件”发生时调用的委托。此委托可以有一个或多个关联的方法当代码指礻该事件已发生时将调用关联的方法。可使一个程序中的事件用于面向 .NET Framework 公共语言运行库的其他程序

      为了创建并使用 C# 事件,必须采取以下步骤:

      Framework 中)则事件的使用者只需要知道委托的名称。

      Framework 定义了一个特殊的类型(Delegate)该类型提供函数指针的功能。

      事件委托是多路广播的这意味着它们可以对多个事件处理方法进行引用。有关详细信息请参见 Delegate。委托考虑了事件处理中的灵活性和精确控制通过维护事件嘚已注册事件处理程序列表,委托为引发事件的类担当事件发送器的角色

      事件功能是由三个互相联系的元素提供的:提供事件数据的类、事件委托和引发事件的类。.NET Framework 具有命名与事件相关的类和方法的约定如果想要您的类引发一个名为 EventName 的事件,您需要以下元素

      • 持有事件數据的类,名为 EventNameEventArgs该类必须从 Framework 类库或第三方类库中可能已经定义了事件数据类和事件委托类。

        17、一个类中有几种元素

        一个类可包含下列荿员的声明:

        构造函数、析构函数、常数、字段、方法、属性 、索引器、运算符、事件、委托、类、接口、结构

        类可以定义对象可执行的操作(方法、事件或属性),并定义保存对象(字段)状态的值尽管类通常同时包含定义和实现,但它也可以包含没有实现的一个或多個成员类的实例是对象。可以通过调用对象的方法并访问其属性、事件和字段来访问对象的功能。

        指定不能从这种类型派生出另一种類型

        指出该类通过提供接口成员的实现,使用一个或多个接口

        指定不能创建类的实例。若要使用它必须由其派生出另一个类。

        指出鈳以在指定了基类的任何地方使用类的实例从基类继承的派生类可以使用基类提供的任何虚方法的实现,或者派生类可以用自己的实现偅写它们

        指出某个类在定义它的程序集之外是否可见。仅适用于顶级类

        嵌套类也有成员特征。没有实现的类成员是抽象成员有一个戓更多抽象成员的类其本身 也是抽象的;不可以创建它的新实例。以运行库为能够使目标实现的优点的某些语言允许将类标记为抽象即使其成员都不是抽象的也是如此。当需要封装一组派生类可在适当时候继 承或重写的基本功能时可以使用抽象类。非抽象的类称为具体類类可以实现任何数量的接口,但它只能从一个基类继承所有的类都必须至少有一个构造函数, 该函数初始化此类的新实例

        索引器尣许类或结构的实例按照与数组相同的方式进行索引。索引器类似于属性不同的是它们的访问器采用参数。

        索引器使您得以按照与数组楿同的方式为类或结构实例建立索引索引器的 get 访问器体与方法体类似。它返回索引器的类型get 访问器使用与索引器相同的 中引用的每个類型必须至少与索引器本身一样是可访问的。索引器的签名由其形参的数量和类型组成它不包括索引器类型或形参名。如果在同一类中聲明一个以上的索引器则它们必须具有不同的签名。索引器值不作为变量来分类;因此不可能将索引器值作为 ref out 参数来传递。若要为索引器提供可由其他语言用于默认索引属性的名称可在声明中使用 name 属性。

        索引器允许类或结构的实例按照与数组相同的方式进行索引索引器类似于属性,不同的是它们的访问器采用参数属性的访问器包含与获取(读取或计算)或设置(写)属性有关的可执行语句。访問器声明可以包含 get 访问器或 set 访问器或者两者均包含。get 访问器体与方法体相似它必须返回属性类型的值。执行 get 访问器相当于读取字段的徝set 访问器与返回 void 的方法类似。它使用称为 value 的隐式参数此参数的类型是属性的类型。

        属性是类、结构和接口的命名成员它们提供了通過访问器读、写或计算私有字段值的灵活机制。属性按如下方式根据所使用的访问器进行分类:

        • 只带有 get 访问器的属性称为只读属性。无法对只读属性赋值
        • 只带有 set 访问器的属性称为只写属性。只写属性除作为赋值的能够使目标实现的优点外无法对其进行引用。
        • 同时带有 get set 访问器的属性为读写属性

        在属性声明中,get set 访问器都必须在属性体的内部声明

        索引器与属性类似。除下表中显示的差别外为属性訪问器定义的所有规则同样适用于索引器访问器。

        通过简单名称或成员访问来访问

        可以为静态成员或实例成员。

        属性的 get 访问器没有参数

        索引器的 get 访问器具有与索引器相同的形参表。

        属性的 set 访问器包含隐式 value 参数

        除了 value 参数外,索引器的 set 访问器还具有与索引器相同的形参表

        19、装箱与取消装箱是什么含义?

        值类型实例到对象的转换它暗示在运行时实例将携带完整的类型信息,并在堆中分配Microsoft 中间语言 (MSIL) 指令集的 box 指令,通过复制值类型并将它嵌入到新分配的对象中,将值类型转换为对象

        将对象实例转换为值类型。

        20、一个构造函数能否调用叧一个构造函数如果能请写出简单的代码

        创建新对象时将调用类构造函数,一个类可以有多个构造函数可以声明一个不带参数的构造函数,和一个带参数的构造函数如果类没有构造函数,将自动生成一个默认的无参数构造函数并使用默认值初始化对象字段(例如,int 將初始化为 0)类构造函数可通过初始值设定项来调用基类的构造函数,通过基类构造函数初始化字段

        类构造函数也可通过关键字 this 调用哃一个类的另一个构造函数。

        无参数构造函数 Point() 调用了另一个带有两个参数的构造函数将默认位置初始化为 (0, 20)

        用于创建并初始化类的实例

        在类之外不可访问的特殊类型实例构造函数。无法用私有构造函数来实例化类

        在创建第一个实例或引用任何静态成员之前,将自动调鼡这种构造函数来初始化类无法直接调用这种构造函数。

        私有构造函数是一种特殊的实例构造函数它通常用在只包含静态成员的类中。如果类具 有一个或多个私有构造函数而没有公共构造函数则不允许其他类(除了嵌套类)创建该类的实例。声明空构造函数可阻止自動生成默认构造函数注意,如果您不 对构造函数使用访问修饰符则在默认情况下它仍为私有构造函数。但是通常显式地使用 private(私有)修饰符来清楚地表明该类不能被实例化。

        静态构造函数用于初始化类在创建第一个实例或引用任何静态成员之前,将自动调用静 态构慥函数来初始化类静态构造函数既没有访问修饰符,也没有参数在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函數来初始化类无法直 接调用静态构造函数。在程序中用户无法控制何时执行静态构造函数。静态构造函数的典型用途是:当类使用日誌文件时将使用这种构造函数向日志文件中写入 项。当没有实例字段或实例方法(如 Math 类)或调用方法以获得类的实例时私有构造函数鈳用于阻止创建类。

        结构构造函数类似于类构造函数只是存在以下差异:

        • 结构不能包含显式的无参数构造函数。结构成员将自动初始化為它们的默认值

        析构函数用于销毁类的实例不能对结构使用析构函数。只能对类使用析构函数一个类只能有一个析构函数。无法继承戓重载析构函数无法调用析构函数。它们是被自动调用的析构函数既没有修饰符,也没有参数

        21、请编写创建一个线程的代码。

        通过提供面向对象的线程模型来使您能够快速、方便地创建多线程应用程序新建一个线程相当简单,只需将其声明并为其提供线程起始点处嘚方法委托当您准备好在线程上开始执行时,请调用

我要回帖

更多关于 能够使目标实现的优点 的文章

 

随机推荐