41. 在下面的例子里
using System;
class A
{
public A()
{
PrintFields();
}
public virtual void PrintFields(){}
}
class B:A
{
int x=1;
int y;
public B()
{
y=-1;
}
public override void PrintFields()
{
Console.WriteLine(“x={0},y={1}”,x,y);
}
当使用new B()创建B的实例时,产生什么输出?
创建子类对象时,先调用父类构造方法,再调用子类构造方法,当调用父类构造方法时,由于还未调用子类构造方法,因此,x=1,y=0,当调用父类构造方法时,在父类构造方法中将调用PrintFields()方法,而该方法为虚方法且被子类重写,由于目前为子类对象,因此,调用子类重写后的PrintFields()方法,故输出:X=1,Y=0。
42. 求以下表达式的值,写出您想到的一种或几种实现方法: 1-2+3-4+……+m
int Num = this.TextBox1.Text.ToString() ;
int Sum = 0 ;
for (int i = 0 ; i 〈 Num + 1 ; i++)
{
if((i%2) == 1)
{
Sum += i ;
}
else
{
Sum -=i ;
}
}
System.Console.WriteLine(Sum.ToString());
System.Console.ReadLine() ;
43. 描述一下C#中索引器的实现过程,是否只能根据数字进行索引?
不是。可以用任意类型。
44. NET中读写XML的类都归属于哪些命名空间?
答:System.Xml
45. CLR与IL分别是什么含义?
CLR:Common Language Runtime,公共语言运行时,是一套完整的、高级的虚拟机,它被设计为用来支持不同的编程语言,并支持它们之间的互操作。
IL,中间语言,也称MSIL,微软中间语言,或CIL,通用中间语言;所有.NET源代码在进行编译时都被编译成IL,IL独立于CPU的指令集,与平台无关。在应用程序运行时被即时(Just-In-Time,JIT)编译器处理成为机器码,被解释及执行。
46. 进程与程序的区别?
(1)进程是动态的,而程序是静态的。
(2)进程有一定的生命期,而程序是指令的集合,本身无“运动”的含义。没有建立进程的程序不能作为1个独立单位得到操作系统的认可。
(3)1个程序可以对应多个进程,但1个进程只能对应1个程序。进程和程序的关系犹如演出和剧本的关系。
47. 私有程序集与共享程序集有什么区别?
一个私有程序集通常为单个应用程序所使用,并且存储于这个应用程序所在的目录之中,或此目录下面的一个子目录中。
共享程序集通常存储在全局程序集缓存(Global Assembly Cache)之中,这是一个由.NET运行时所维护的程序集仓库。共享程序集通常是对许多应用程序都有用的代码库,比如.NET Framework类。
48. New有几种用法
在 C# 中,new 关键字可用作运算符、修饰符或约束。
1)new 运算符:用于创建对象和调用构造函数。这种大家都比较熟悉,没什么好说的了。
2)new 修饰符:在用作修饰符时,new 关键字可以显式隐藏从基类继承的成员。
3)new 约束:用于在泛型声明中约束可能用作类型参数的参数的类型。
49. 接口是否可继承接口?抽象类是否可实现接口?抽象类是否可继承类?
在C#中,接口可以继承接口,但不是实现接口,因为,接口中不能存在实现的成员。
抽象类与普通类无差异,只是不能被实例化而已,因此,抽象可以实现接口,也可以继承类,但抽象类一般作为父类使用。
50. 什么是类和对象以及关系?
对象:一种具有状态(属性)和行为(方法)的编程实体,用于描述现实世界的某个具体事物。
类:具用一系列对象共同特征和行为的通用类型。
对象和类的关系:
类是对象的抽象,而对象是类的具体实例。类是抽象的,不占用内存,而对象是具体的,占用存储空间。类与对象的关系就如模具和铸件的关系,类的实例化结果就是对象,而对一类对象的抽象就是类,类描述了一组有相同属性和相同方法的对象。