您的位置:网站首页 > Java教程 > 正文

金三银四面试:C程序员经常遇到的30道基础面试题想你所想

类别:Java教程 日期:2022-3-15 14:42:08 人气: 来源:

  使用override修饰符来修改方法、属性、索引器或事件。重写方法提供从基类继承的的新实现。由重写声明重写的方法称为重写基方法。重写基方法必须与重写方法具有相同的签名。

  重写声明不能更改虚方法的可访问性。重写方法和虚方法必须具有相同的访问级的修饰符。不能使用下列修饰符修改重写方法:new、static、virtual、abstract。

  重写属性声明必须指定与继承属性完全相同的访问修饰符、类型和名称,并且重写属性必须是虚拟的、抽象的或重写的。

  virtual关键字用于修改方法和属性的声明,在这种情况下,方法或属性被称作虚拟。虚拟的实现可由派生类中的重写更改。调用虚方法时,将为重写检查该对象的运行时类型。将调用大部生类中的该重写,如果没有派生类重写该,则它可能是原始。默认情况下,方法虚拟的。

  接口是其他类型为确保它们支持某些操作而实现的引用类型。接口从不直接创建而且没有实际的表示形式,其他类型必须转换为接口类型。一个接口定义一个协定。实现接口的类或结构必须遵守其协定。接口可以包含方法、属性、索引器和事件作为。

  .net是一种平台和框架,.net不是单纯的语言也不是单纯的工具,它是从底层平台开始构建起来的一个整体框架。

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

  方法参数上的out方法参数关键字使方法引用传递到方法的同一个变量。当控制传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。

  当希望方法返回多个值时,声明out方法非常有用。使用out参数的方法仍然可以返回一个值。一个方法可以有一个以上的out参数。若要使用out参数,必须将变量作为out参数显示传递到方法。out变量的值不会传递到out参数。属性不是变量,不能作为out参数传递。如果两个方法的声明仅在out的使用方面不同,则会发生重载。不过,无义仅在ref和out方面不同的重载。

  大多数编程语言提供内置的数据类型(比如整数和浮点数),这些数据类型会在作为参数传递时被复制(即,它们通过值来传递)。在.NET Framework中,这些称为值类型。您可以创建值类型的实例,将它们作为参数传递,将它们存储为局部变量,或将它们存储在另一值类型或对象的字段中。值类型没有与存储类的实例相关的系统开销,并且它们不需要构造函数。值类型可以有字段、属性和事件。它们也有静态和非静态方法。当它们被装箱时,会从System.ValueType继承虚方法,并可实现零个或更多接口。值类型是密封的,这意味着不能从它们派生出其他类型。但是,可以直接对值类型定义虚方法,并且即可对该类型的已装箱形式,也可对未装箱形式调用这些方法。尽管不能从一种值类型派生出另一种类型,但是当所用语言处理虚方法比处理非虚方法或静态方法更方便时,可以对值类型定义虚方法。引用类型的变量又称为对象,可存储对实际数据的引用。以下用于声明引用类型的关键字:

  装箱是值类型到object类型(引用类型)或到该值类型所实现的任何接口类型的隐式转换。将一个值类型的值装箱会分配一个对象实例并将该值复制到新的对象中。拆箱是从object类型(引用类型)到值类型或从接口类型到实现该接口的值类型的显示转换,拆箱包括:

  有。静态构造函数用于初始化类。在创建第一个实例或引用任态之前,将自动调用静态构造函数来初始化类。静态构造函数既没有访问修饰符,也没有参数。在创建第一个实例或引用任态之前,将自动调用静态构造函数来初始化类。无法直接调用静态构造函数。在程序中,用户无法控制何时执行静态构造函数。静态构造函数的典型用途是:当类使用日志文件时,将使用这种构造函数向日志文件中写入项。

  “多态性”指定义具有功能不同但名称相同的方法或属性的多个类的能力,这些类可由客户端代码在运行时交换使用。也就是由重载和重写实现多态。重载一般是同一类中的一组同名方法,但签名。重写主要是在继承中体现,就是在基类中定义方法并在派生类中使用新实现重写它们。

  反射提供了访问程序集、模块和类型信息的一种机制。您可以使用反射动态的创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性。通过反射命名空间中的类以及System.Type,您可以获取有关已加载的程序集和在其中定义的类型(如类、接口和值类型)的信息。您也可以使用反射在运行时创建类型实例,然后调用和访问这些实例。

  文件是一些具有永久存储及特定顺序的字节组成的一个有序的、具有名称的集合。因此,对于文件,人们常会想到目录径、磁盘存储、文件和目录名等方面。相反,流提供一种向后备存储器写入字节和从后备存储器读取字节的方式,后备存储器可以为多种存储媒介之一。正如除磁盘外在多种后备存储器一样,除文件流之外也存在多种流。例如,还存在网络流、内存流和磁带流等。

  命名空间是用于避免命名冲突,专用于组织代码,当代码要在其他某个应用程序中重用时,可以降低复杂性。程序集是重用代码的一种方式,通常对应一个工程类库(dll),在一个程序集中可以有属于不同命名空间的类和接口。可以将相同命名空间中的类部署到不同的程序集中,也可以将不同命名空间中的类部署到一个程序集中。

  委托提供了封装方法的方式,事件是某动作已发生的说明,事件是建立于委托之上的。(1)程序运行时同一个委托能够用来调用不同的方法只要改变它引用的方法即可。

  巅峰小保姆

  (2)同一个委托能够用来调用不同的方法,只要改变它引用的方法即可,因此委托调节器用的方法不是在编译时决定的,而是在运行时确定的。

  params关键字可以指定在参数数目可变处定义参数的方法。在方法声明中的params关键字之后不允许任何其他参数,并且在方法声明中只允许一个params关键字。

  重载操作符意味着使该操作符具有不同的行为,使用操作符可以使方程式简单易懂。C# 允许用户定义的类型通过使用 operator 关键字定义静态函数来重载运算符。注意必须用public修饰且必须是类的静态的方法。C#为了类型安全,默认并不支持指针。但是也并不是说C#不支持指针,我们可以使用unsafe关键词,不安全代码(unsafe code)开发模式。在不安全模式下,我们可以直接操作内存,这样就可以使用指针了。在不安全模式下,CLR并不检测unsafe代码的安全,而是直接执行代码。unsafe代码的安全需要开发人员自行检测。

  不鼓励在其他情况下使用不安全上下文。具体地说,不应该使用不安全上下文尝试在C#中编写C代码。

  public关键字将公共访问权限授予一个或多个被声明的编程元素。对公共元素的可访问性没有。

  internal关键字是类型和类型的访问修饰符。内部只有在同一程序集中的文件内才是可访问的。内部访问通常用于基于组件的开发,因为它使用一组组件能够以私有方式进行合作,而不必向应用程序代码的其余部分公开。例如,用于生成图形用户界面的框架可以提供“控件”类和“窗体”类,这些类通过使用具有内部访问能力的进行合作。由于这些是内部的,它们不向正在使用框架的代码公开。在定义具有内部访问能力的的程序集外部引用该是错误。

  用最简短的话来说,进程就是当前运行的应用程序。线程是操作系统向其分配处理器时间的基本单位。线程可执行进程的任何一部分代码,包括当前由另一线、CLR与IL分别是什么含义?

  

关键词:程序编写入门
0
0
0
0
0
0
0
0
下一篇:没有资料

网友评论 ()条 查看

姓名: 验证码: 看不清楚,换一个

推荐文章更多

热门图文更多

最新文章更多

关于联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助

郑重声明:本站资源来源网络 如果侵犯了你的利益请联系站长删除

CopyRight 2010-2012 技术支持 FXT All Rights Reserved