aspnet笔试题目带答案(编辑修改稿)内容摘要:

} return TodayWeather。 } } } class Program { static void Main(string[] args) { Point[] tmpPoints = new Point[10]。 for (int i = 0。 i。 i++) { tmpPoints[i] = new Point(i, (i))。 } Points tmpObj = new Points(tmpPoints)。 for (int i = 0。 i。 i++) { (tmpObj[i])。 } string[] Week = new string[] { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Staurday}。 WeatherOfWeek tmpWeatherOfWeek = new WeatherOfWeek()。 for (int i = 0。 i 6。 i++) { (tmpWeatherOfWeek[i])。 } foreach (string tmpDay in Week) { (tmpWeatherOfWeek[tmpDay])。 } ()。 } } } 结果: X: 0 , Y: 0 X: 1 , Y: X: 2 , Y: X: 3 , Y: X: 4 , Y: X: 5 , Y: X: 6 , Y: X: 7 , Y: X: 8 , Y: X: 9 , Y: Today is cloudy! Today is fine! Today is fine! Today is fine! Today is fine! Today is thundershower! Today is cloudy! Today is fine! Today is fine! Today is fine! Today is fine! Today is thundershower! Today is fine! 修饰符是起什么作用。 答: new 修 饰符与 new 操作符是两个概念 new 修饰符用于声明类或类的成员,表示隐藏了基类中同名的成员。 而 new 操作符用于实例化一个类型 new 修饰符只能用于继承类,一般用于弥补基类设计的不足 new 修饰符和 override 修饰符不可同时用在一个成员上,因为这两个修饰符在含义上互相排斥 示例: using System。 using。 using。 namespace Example09 { class BaseClass { //基类设计者声明了一个 PI的公共变量,方便进行运算 public static double PI =。 } class DervieClass : BaseClass { //继承类发现该变量的值不能满足运算精度,于是可以通过 new 修饰符显式隐藏基类中的声明 public new static double PI =。 } class Program { static void Main(string[] args) { ()。 ()。 ()。 } } } 结果: 关键字的含义。 答: this 是一个保留字,仅 限于构造函数和方法成员中使用 在类的构造函数中出现表示对正在构造的对象本身的引用,在类的方法中出现表示对调用该方法的对象的引用,在结构的构造上函数中出现表示对正在构造的结构的引用,在结构的方法中出现表示对调用该方法的结果的引用 this 保留字不能用于静态成员的实现里,因为这时对象或结构并未实例化 ..在 C 系统中, this 实际上是一个常量,所以不能使用 this++ 这样的运算 this 保留字一般用于限定同名的隐藏成员、将对象本身做为参数、声明索引访问器、判断传入参数的对象是否为本身 示例: using System。 using。 using。 namespace Example10 { class Class1 { private double c。 private string value。 public double C { get { return c。 } } public Class1(double c) { //限定同名的隐藏成员 = c。 } public Class1(Class1 value) { //用对象本身实例化自己没有意义 if (this != value) { c =。 } } public override string ToString() { //将对象本身做为参数 return ({0} Celsius = {1} Fahrenheit, c, (this))。 } //由于好奇,在这做了一个效率测试,想看看到底哪种方式访问成员变量更快,结论:区别不大。 public string Test1() { long vTickCount =。 for (int i = 0。 i 10000000。 i++) = ()。 return (Have this.: {0} MSEL, vTickCount)。 } public string Test2() { long vTickCount =。 for (int i = 0。 i 10000000。 i++) value = ()。 return (Don39。 t have this.: {0} MSEL, vTickCount)。 } } class UnitTransClass { public static double C2F(Class1 value) { //摄氏到华氏的转换公式 return * + 32。 } } class Program { static void Main(string[] args) { Class1 tmpObj = new Class1()。 (tmpObj)。 (())。 (())。 ()。 } } } 结果: Celsius = Fahrenheit Have this.: 4375 MSEL Don39。 t have this.: 4406 MSEL。 答: 可以 需使用 new 修饰符显式声明,表示隐藏了基类中该函数的实现 或增加 override 修饰符,表示抽象重写了基类中该函数的实现 示例 : class BaseClass { public virtual void F() { ()。 } } abstract class DeriveClass1 : BaseClass { public abstract new void F()。 } //感谢 watson hua( //是他提醒了我还可以用这种方法抽象重写基类的虚方法 abstract class DeriveClass2 : BaseClass { public abstract override void F()。 }。 答: 可以,基类中的虚函数将隐式的转化为非虚函数,但密封类本身不能再增加新的虚函数 示例: class BaseClass { public virtual void F() { ()。 } } sealed class DeriveClass : BaseClass { //基类中的虚函数 F 被隐式的转化为非虚函数 //密封类中不能再声明新的虚函数 G //public virtual void G() //{ // ()。 //} }。 答: 属性访问器( Property Accessor),包括 get 访问器和 set 访问器分别用于字段的读写操作 其设计目的主要是为了实现面向对象( OO)中的封装思想。 根据该思想,字段最好设为 private,一个精巧的类最好不要直接把字段设为公有提供给客户调用端直接访问 另外要注意属性本身并不一定和字段相联系 可以和 virtual 一起使用吗。 可以和 override 一起使用吗。 答: abstract 修饰符不可以和 static、 virtual 修饰符一起使用 abstract 修饰符可以和 override 一起使用,参见第 11 点 示例: using System。 using。 using。 namespace Example14 { class BaseClass { public virtual void F() { ()。 } } abstract class DeriveClass1 : BaseClass { //在这里, abstract 是可以和 override 一起使用的 public abstract override void F()。 } class Program { static void Main(string[] args) { } } }。 答: 接口可以包含属性、方法、索引指示器和事件, 但不能包含常量、域、操作符、 构造函数和析构函数,而且也不能包含任何静态成员。 答:类: 类是引用类型在堆上分配,类的实例进行赋值只是复制了引用,都指向同一段实际对象分配的内存 类有构造和析构函数 类可以继承和被继承 结构: 结。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。