C#暑假作业
一、单项选择题
1.属于C#语言的关键字( )。
A. abstract B. camel C. Salary D. Employ
答案:A
2.C#语言中,值类型包括:基本值类型、结构类型和( )。
A.小数类型 B.整数类型 C.类类型 D.枚举类型
答案:D
3. 假定一个10行20列的二维整型数组,下列哪个定义语句是正确的(
A. int[]arr = new int[10,20]
B. int[]arr = int new[10,20]
C. int[,]arr = new int[10,20]
D. int[,]arr = new int[20;10]
答案:C
4.在类作用域中能够通过直接使用该类的( )成员名进行访问。
A. 私有 B. 公用 C. 保护 D. 任何
答案:D
5. 以下正确的描述是( )。
A. 函数的定义可以嵌套,函数的调用不可以嵌套
B. 函数的定义不可以嵌套,函数的调用可以嵌套
C. 函数的定义和函数的调用均可以嵌套
D. 函数的定义和函数的调用均不可以嵌套
答案:B
6.小数类型和浮点类型都可以表示小数,正确说法:( )
A. 两者没有任何区别
B. 小数类型比浮点类型取值范围大
C.小数类型比浮点类型精度高
D. 小数类型比浮点类型精度低
答案:C 。 )
7. 可用作C#程序用户标识符的一组标识符是( )。
A. void define +WORD B. a3_b3 _123 YN
C. for -abc Case D. 2a DO sizeof 答案:B
8.引用类型主要有4种:类类型、数组类型、接口类型和( )。
A.对象类型 B.字符串类型 C.委托类型 D.整数类型
答案:C
9.加载窗体时触发的事件是( )。
A. Click B.Load C.GotFoucs D.DoubleClick
答案:B
10.改变窗体的标题,需修改的窗体属性是( )。
A. Text B. Name C.Title D. Index
答案:A
11.在C#中,定义派生时,指定其基类应使用的语句是( )。
A.Inherits B.: C.Class D.Overrides
答案:B
12.类的以下特性中,可以用于方便地重用已有的代码和数据的是( ).
A.多态 B.封装 C.继承 D.抽象
答案:C
13.在Array类中,可以对一维数组中的元素进行排序的方法是( )。
A.Sort() B.Clear() C.Copy() D.Reverse()
答案:A
14.将变量从字符串类型转换为数值类型可以使用的类型转换方法是( )。
A.Str() B.Cchar C.CStr() D.int.Parse();
答案:D
15.数据类型转换的类是( )。
A.Mod B.Convert C. Const D. Single
答案:B
16.在接口的成员中,不能包含( ).
A.属性 B.方法 C.事件 D.常量
答案:D
17.在C#中定义接口时,使用的关键字是( )。
A.interface B.: C.class D.overrides
答案:A
18、以下关于C#中方法重载的说法正确的是( )。(选择二项)
A.如两个方法名字不同,而参数的数量不同,那么它们可以构成方法重载
B.如两个方法名字相同,而返回值的数据类型不同,那么它们可以构成方法重载
C.如两个方法名字相同,而参数的数据类型不同,那么它们可以构成方法重载
D.如两个方法名字相同,而参数的数量不同,那么它们可以构成方法重载 答案:C D
19、在C#语法中,在派生类中对基类的虚函数进行重写,要求在声明中使用( )关键字。
A.override
B.new
C.static
D.virtual
答案:A
20、在.NET中,Hashtable类所在的命名空间是( )
A.System.Threadint
B.System.IO
C.System.Collections
D.System
答案:C
21.在C#中,可以通过装箱和拆箱实现值类型与引用类型之间相互转换,在下列代码中,有( )处实现了拆箱。
int age = 5;
object o= age;
o=10;
age=(int)o;
object oAge =age;
A.0
B.1
C.2
D.3
答案:B
22、在C#中,下列代码的运行结果是()
Int[]num =new int[]{1,3,5};
ArrayList arr=new ArrayList();
For(int i=0;i
{ 选择一项) . (
arr.Add(num[i]);
}
arr.Insert(1,4);
console.Write(arr[2]);
A.1
B.3
C.4
D.5
答案:B
23、C#中关于委托,下面说法正确的是( )。(选择两项)
A.委托是一种类的成员
B.委托必须定义在类中
C.定义委托需要使用delegate关键字
D.委托是一种数据类型
答案:C D
24、下列关于C#的异常处理的说发法,错误的是()。(选择二项)
A.Try块必须跟catch块组合使用,不能单独使用
B.一个try块可以跟随多个catch块
C.使用throw语句既可引发系统异常,也可以引发由开发人员创建的自定义异常
D.在try „ catch „..finally块中,即便开发人员编写强制逻辑代码,也不能跳出finally
答案:A D
25、在C#中,接口与抽象基类的区别在于( )。(选择一项)
A.抽象基类可以包含非抽象方法,而接口只能包含抽象方法
B.抽象基类可以被实例化,而接口不能被实例化
C.抽象基类不能被实例化,而接口可以被实例化
D.抽象基类能够被继承,而接口不能被继承
答案:D
26、在.NET中,一些数据类型为引用类型,当引用类型的值为()时,表明没有引用任何对象。(选择一项)
A.Empty
B.null
C.Nothing
D.0
答案:B
27、在WinForm窗体中,放置了一个PictureBox 控件PictureBox1,在设置PictureBox1控件的Image 属性后,当图片与控件的大小不一致时,可以通过如下代码()使PictureBox1控件的大小与图片大小保持一致。
A.this.PictureBox1.SizeMode = PictureBoxSizeMode.AutoSize;
B.this.PictureBox1.SizeMode = PictureBoxSizeMode.Normal;
C.this.PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
D.this.PictureBox1.SizeMode = PictureBoxSizeMode.CenterImage; 答案:A
28、在.NET的WinForms程序中,可以使用()对象来连接和访问数据库。
A.MDI
B.JIT
C.ADO.NET
D.System.ADO
答案:C
29、在WinForm应用程序中,可以通过以下( )方法使一个窗体成为MDI窗体。
A.改变窗体的标题信息
B.在工程的选项中设置启动窗体
C.设置窗体的IsMdiContainer属性
D.设置窗体的ImeMode属性
答案:C
30、WinForms程序中,如果复选框控件的 Checked属性值设置为 True,表示()。
A.该复选框被选中
B.该复选框不被选中
C.不显示该复选框的文本信息
D.显示该复选框的文本信息
答案:A
31、在C#中,下列代码的运行结果是()。
Int []num = new int[5]{1,3,2,0,0}
Array,Reverse(num);
Foreach(int I in num){
Console.Write(i);
}
A.00123
B.12300
C.00132
D.00231
答案:D
32、在C#中,( )访问修饰符修饰的变量只能由当前程序集访问。
A.public
B.protected
C.internal
D.private
答案:C
33、在ADO.NET中,下列代码运行后的输出结果是( )(选择一项)
DataTable dt=new DataTable();
dt.Columns.Add (“编号”,typeof(System.Int16));
dt.Columns.Add (“成绩”,typeof(System.Single));
Console.WriteLine(dt.Columns[1].DataType);
A.System.Int16;
B.System.Single
C.编号
D.成绩
答案:B
34、( )方法执行指定为Command对象的命令文本的SQL语句,并返回受SQL语句影响或检索的行数。
A.ExecuteNonQuery
B.ExecuteReader
C.ExecuteQuery
D.ExecuteScalar
答案:A
35、在ADO.NET中,下列关于DataSet类说法有误的是( )。(请选二项)
A.可以向DataSet的表集合中添加新表
B.DataSet中的数据发生改变之后,它会自动更新数据库中对应的数据
C.DataSet 就好象是内存中的一个“临时数据库”
D.DataSet 中的数据是只读的并且是只进的
答案:B D
36、在ADO.NET中,SqlConnection 类所在的命名空间是()。
A.System
B.System.Data
C.System.Data.OleDb
D.System.Data.SqlClient
答案: D
37、在C#中,下列常量定义正确的是()。
A.Const double PI 3.1415926;
B.Const double e=2.7
C.define double PI 3.1415926
D.define double e=2.7
答案: B
38、在C#中,一个类( ).
A.可以继承多个类
B.可以实现多个接口
C.在一个程序中只能有一个子类
D.只能实现一个接口
答案: B
39、程序运行过程中发生的错误,叫作( ).
A.版本
B.断点
C.异常
D.属性
答案: C
40、阅读以下的C#代码:
class A
{
public A( )
{
Console.WriteLine(
}
}
class B:A
{
public B()
{
Console.WriteLine(
}
}
class Program
{
public static void Main()
{
B b = new B();
Console.ReadLine();
}
}
上述代码运行后,将在控制台窗口输出()。
A. A
B. B
C. A B
D.B A
答案: C
二、填空题
1. 在switch语句中,每个语句标号所含关键字case后面的表达式必须
是 。
答案:常量表达式
2. 在while循环语句中,一定要有修改循环条件的语句,否则,可能造成 答案:死循环
3. C#数组元素的下标从
答案:0
4. 当在程序中执行到 答案:continue
5. 枚举是从类继承而来的类型。
答案:Enum
6.一般将类的构造方法声明为访问权限。如果声明为private,就不能创建该类的对象。
答案:public或公有
7.类中声明的属性往往具有get()和两个函数。
答案:set()
8.对于方法,参数传递分为值传递和
答案:引用传递
9.在方法定义中,virtual。 答案:被virtual修饰的方法可以被子类覆写
10. 接口(interface)
答:只含有公有抽象方法(public abstract method)还可以包含属性、索引器、事件,而且这些成员都被定义为公有的。除此之外,不能包含任何其他的成员,例如:常量、域、构造函数、析构函数、静态成员。一个类可以直接继承多个接口,但只能直接继承一个类(包括抽象类)。的类。这些方法必须在子类中被实现。
三、问答题:
1、传入某个属性的set方法的隐含参数的名称是什么?
答:value,它的类型和属性所声名的类型相同。
2、如何在C#中实现继承?
答:在类名后加上一个冒号,再加上基类的名称。
3、C#支持多重继承么?
答:不支持。可以用接口来实现。
4、被protected修饰的属性/方法在何处可以访问?
答:在继承或间接继承与这个类的子类中可以访问。
5、私有成员会被继承么?
答:会,但是不能被访问。所以看上去他们似乎是不能被继承的,但实际上确实被继承了。
6、C#提供一个默认的无参数构造函数,当我实现了另外一个有一个参数的构造函数时候,还想保留这个无参数的构造函数。这样我应该写几个构造函数?
答:两个,一旦你实现了一个构造函数,C#就不会再提供默认的构造函数了,所以需要手动实现那个无参数构造函数。
7、C#中所有对象共同的基类是什么?
答:System.Object.
8、重载和覆写有什么区
答:重载提供了对一个方法签名的不同参数调用的实现。覆写提供了子类中改变父类方法行为的实现。
9、在方法定义中,virtual有什么含意?
答:被virtual修饰的方法可以被子类覆写。
10、能够阻止某一个类被其他类继承么?
答:可以,使用关键字sealed.
11、能够实现允许某个类被继承,但不允许其中的某个方法被覆写么?
答:可以,标记这个类为public,并标记这个方法为sealed.
12、什么是抽象类(abstract class)?
答:一种不可以被实例化的类。抽象类中一般含有抽象方法,当然也可有具体实现。继承类只有实现过所有抽象类的抽象方法后才能被实例化。
13、何时必须声明一个类为抽象类?
答:当这个类中包含抽象方法时,或是该类并没有完全实现父类的抽象方法时。
14、接口(interface)是什么?
答:只含有共有抽象方法(public abstract method)的类。这些方法必须在子类中被实现。
15、为什么不能指定接口中方法的修饰符?
答:接口中的方法用来定义对象之间通信的契约,指定接口中的方法为私有或保护没有意义。他们默认为公有方法。
16、可以继承多个接口么?
答:当然。
17、接口和抽象类的区别是什么?
答:接口中所有方法必须是抽象的,并且不能指定方法的访问修饰符。抽象类中可以有方法的实现,也可以指定方法的访问修饰符。
18、如何区别重载方法?
答:方法名称相同,不同的参数类型,不同的参数个数
19、const和readonly有什么区别?
答:const关键字用来声明编译时常量,readonly用来声明运行时常量。
20、System.String 和System.StringBuilder有什么区别?
答:System.String是不可变的字符串。System.StringBuilder存放了一个可变的字符串,并提供一些对这个字符串修改的方法。
21、C#用多种修饰符来表达类的不同性质。根据其保护级C#的类有五种不同的限制修饰符,请写出并指出它们之间的区别是什么?
答:
public 可以被任意存取
protected只可以被本类和其继承子类存取
internal只可以被本组合体(Assembly)内所有的类存取,组合体是C#语言中类被组合后的逻辑单位和物理单位,其编译后的文件扩展名往往是“.DLL”或“.EXE”。
protected internal唯一的一种组合限制修饰符,它只可以被本组合体内所有的类和这些类的继承子类所存取。
private只可以被本类所存取。
C#暑假作业
一、单项选择题
1.属于C#语言的关键字( )。
A. abstract B. camel C. Salary D. Employ
答案:A
2.C#语言中,值类型包括:基本值类型、结构类型和( )。
A.小数类型 B.整数类型 C.类类型 D.枚举类型
答案:D
3. 假定一个10行20列的二维整型数组,下列哪个定义语句是正确的(
A. int[]arr = new int[10,20]
B. int[]arr = int new[10,20]
C. int[,]arr = new int[10,20]
D. int[,]arr = new int[20;10]
答案:C
4.在类作用域中能够通过直接使用该类的( )成员名进行访问。
A. 私有 B. 公用 C. 保护 D. 任何
答案:D
5. 以下正确的描述是( )。
A. 函数的定义可以嵌套,函数的调用不可以嵌套
B. 函数的定义不可以嵌套,函数的调用可以嵌套
C. 函数的定义和函数的调用均可以嵌套
D. 函数的定义和函数的调用均不可以嵌套
答案:B
6.小数类型和浮点类型都可以表示小数,正确说法:( )
A. 两者没有任何区别
B. 小数类型比浮点类型取值范围大
C.小数类型比浮点类型精度高
D. 小数类型比浮点类型精度低
答案:C 。 )
7. 可用作C#程序用户标识符的一组标识符是( )。
A. void define +WORD B. a3_b3 _123 YN
C. for -abc Case D. 2a DO sizeof 答案:B
8.引用类型主要有4种:类类型、数组类型、接口类型和( )。
A.对象类型 B.字符串类型 C.委托类型 D.整数类型
答案:C
9.加载窗体时触发的事件是( )。
A. Click B.Load C.GotFoucs D.DoubleClick
答案:B
10.改变窗体的标题,需修改的窗体属性是( )。
A. Text B. Name C.Title D. Index
答案:A
11.在C#中,定义派生时,指定其基类应使用的语句是( )。
A.Inherits B.: C.Class D.Overrides
答案:B
12.类的以下特性中,可以用于方便地重用已有的代码和数据的是( ).
A.多态 B.封装 C.继承 D.抽象
答案:C
13.在Array类中,可以对一维数组中的元素进行排序的方法是( )。
A.Sort() B.Clear() C.Copy() D.Reverse()
答案:A
14.将变量从字符串类型转换为数值类型可以使用的类型转换方法是( )。
A.Str() B.Cchar C.CStr() D.int.Parse();
答案:D
15.数据类型转换的类是( )。
A.Mod B.Convert C. Const D. Single
答案:B
16.在接口的成员中,不能包含( ).
A.属性 B.方法 C.事件 D.常量
答案:D
17.在C#中定义接口时,使用的关键字是( )。
A.interface B.: C.class D.overrides
答案:A
18、以下关于C#中方法重载的说法正确的是( )。(选择二项)
A.如两个方法名字不同,而参数的数量不同,那么它们可以构成方法重载
B.如两个方法名字相同,而返回值的数据类型不同,那么它们可以构成方法重载
C.如两个方法名字相同,而参数的数据类型不同,那么它们可以构成方法重载
D.如两个方法名字相同,而参数的数量不同,那么它们可以构成方法重载 答案:C D
19、在C#语法中,在派生类中对基类的虚函数进行重写,要求在声明中使用( )关键字。
A.override
B.new
C.static
D.virtual
答案:A
20、在.NET中,Hashtable类所在的命名空间是( )
A.System.Threadint
B.System.IO
C.System.Collections
D.System
答案:C
21.在C#中,可以通过装箱和拆箱实现值类型与引用类型之间相互转换,在下列代码中,有( )处实现了拆箱。
int age = 5;
object o= age;
o=10;
age=(int)o;
object oAge =age;
A.0
B.1
C.2
D.3
答案:B
22、在C#中,下列代码的运行结果是()
Int[]num =new int[]{1,3,5};
ArrayList arr=new ArrayList();
For(int i=0;i
{ 选择一项) . (
arr.Add(num[i]);
}
arr.Insert(1,4);
console.Write(arr[2]);
A.1
B.3
C.4
D.5
答案:B
23、C#中关于委托,下面说法正确的是( )。(选择两项)
A.委托是一种类的成员
B.委托必须定义在类中
C.定义委托需要使用delegate关键字
D.委托是一种数据类型
答案:C D
24、下列关于C#的异常处理的说发法,错误的是()。(选择二项)
A.Try块必须跟catch块组合使用,不能单独使用
B.一个try块可以跟随多个catch块
C.使用throw语句既可引发系统异常,也可以引发由开发人员创建的自定义异常
D.在try „ catch „..finally块中,即便开发人员编写强制逻辑代码,也不能跳出finally
答案:A D
25、在C#中,接口与抽象基类的区别在于( )。(选择一项)
A.抽象基类可以包含非抽象方法,而接口只能包含抽象方法
B.抽象基类可以被实例化,而接口不能被实例化
C.抽象基类不能被实例化,而接口可以被实例化
D.抽象基类能够被继承,而接口不能被继承
答案:D
26、在.NET中,一些数据类型为引用类型,当引用类型的值为()时,表明没有引用任何对象。(选择一项)
A.Empty
B.null
C.Nothing
D.0
答案:B
27、在WinForm窗体中,放置了一个PictureBox 控件PictureBox1,在设置PictureBox1控件的Image 属性后,当图片与控件的大小不一致时,可以通过如下代码()使PictureBox1控件的大小与图片大小保持一致。
A.this.PictureBox1.SizeMode = PictureBoxSizeMode.AutoSize;
B.this.PictureBox1.SizeMode = PictureBoxSizeMode.Normal;
C.this.PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
D.this.PictureBox1.SizeMode = PictureBoxSizeMode.CenterImage; 答案:A
28、在.NET的WinForms程序中,可以使用()对象来连接和访问数据库。
A.MDI
B.JIT
C.ADO.NET
D.System.ADO
答案:C
29、在WinForm应用程序中,可以通过以下( )方法使一个窗体成为MDI窗体。
A.改变窗体的标题信息
B.在工程的选项中设置启动窗体
C.设置窗体的IsMdiContainer属性
D.设置窗体的ImeMode属性
答案:C
30、WinForms程序中,如果复选框控件的 Checked属性值设置为 True,表示()。
A.该复选框被选中
B.该复选框不被选中
C.不显示该复选框的文本信息
D.显示该复选框的文本信息
答案:A
31、在C#中,下列代码的运行结果是()。
Int []num = new int[5]{1,3,2,0,0}
Array,Reverse(num);
Foreach(int I in num){
Console.Write(i);
}
A.00123
B.12300
C.00132
D.00231
答案:D
32、在C#中,( )访问修饰符修饰的变量只能由当前程序集访问。
A.public
B.protected
C.internal
D.private
答案:C
33、在ADO.NET中,下列代码运行后的输出结果是( )(选择一项)
DataTable dt=new DataTable();
dt.Columns.Add (“编号”,typeof(System.Int16));
dt.Columns.Add (“成绩”,typeof(System.Single));
Console.WriteLine(dt.Columns[1].DataType);
A.System.Int16;
B.System.Single
C.编号
D.成绩
答案:B
34、( )方法执行指定为Command对象的命令文本的SQL语句,并返回受SQL语句影响或检索的行数。
A.ExecuteNonQuery
B.ExecuteReader
C.ExecuteQuery
D.ExecuteScalar
答案:A
35、在ADO.NET中,下列关于DataSet类说法有误的是( )。(请选二项)
A.可以向DataSet的表集合中添加新表
B.DataSet中的数据发生改变之后,它会自动更新数据库中对应的数据
C.DataSet 就好象是内存中的一个“临时数据库”
D.DataSet 中的数据是只读的并且是只进的
答案:B D
36、在ADO.NET中,SqlConnection 类所在的命名空间是()。
A.System
B.System.Data
C.System.Data.OleDb
D.System.Data.SqlClient
答案: D
37、在C#中,下列常量定义正确的是()。
A.Const double PI 3.1415926;
B.Const double e=2.7
C.define double PI 3.1415926
D.define double e=2.7
答案: B
38、在C#中,一个类( ).
A.可以继承多个类
B.可以实现多个接口
C.在一个程序中只能有一个子类
D.只能实现一个接口
答案: B
39、程序运行过程中发生的错误,叫作( ).
A.版本
B.断点
C.异常
D.属性
答案: C
40、阅读以下的C#代码:
class A
{
public A( )
{
Console.WriteLine(
}
}
class B:A
{
public B()
{
Console.WriteLine(
}
}
class Program
{
public static void Main()
{
B b = new B();
Console.ReadLine();
}
}
上述代码运行后,将在控制台窗口输出()。
A. A
B. B
C. A B
D.B A
答案: C
二、填空题
1. 在switch语句中,每个语句标号所含关键字case后面的表达式必须
是 。
答案:常量表达式
2. 在while循环语句中,一定要有修改循环条件的语句,否则,可能造成 答案:死循环
3. C#数组元素的下标从
答案:0
4. 当在程序中执行到 答案:continue
5. 枚举是从类继承而来的类型。
答案:Enum
6.一般将类的构造方法声明为访问权限。如果声明为private,就不能创建该类的对象。
答案:public或公有
7.类中声明的属性往往具有get()和两个函数。
答案:set()
8.对于方法,参数传递分为值传递和
答案:引用传递
9.在方法定义中,virtual。 答案:被virtual修饰的方法可以被子类覆写
10. 接口(interface)
答:只含有公有抽象方法(public abstract method)还可以包含属性、索引器、事件,而且这些成员都被定义为公有的。除此之外,不能包含任何其他的成员,例如:常量、域、构造函数、析构函数、静态成员。一个类可以直接继承多个接口,但只能直接继承一个类(包括抽象类)。的类。这些方法必须在子类中被实现。
三、问答题:
1、传入某个属性的set方法的隐含参数的名称是什么?
答:value,它的类型和属性所声名的类型相同。
2、如何在C#中实现继承?
答:在类名后加上一个冒号,再加上基类的名称。
3、C#支持多重继承么?
答:不支持。可以用接口来实现。
4、被protected修饰的属性/方法在何处可以访问?
答:在继承或间接继承与这个类的子类中可以访问。
5、私有成员会被继承么?
答:会,但是不能被访问。所以看上去他们似乎是不能被继承的,但实际上确实被继承了。
6、C#提供一个默认的无参数构造函数,当我实现了另外一个有一个参数的构造函数时候,还想保留这个无参数的构造函数。这样我应该写几个构造函数?
答:两个,一旦你实现了一个构造函数,C#就不会再提供默认的构造函数了,所以需要手动实现那个无参数构造函数。
7、C#中所有对象共同的基类是什么?
答:System.Object.
8、重载和覆写有什么区
答:重载提供了对一个方法签名的不同参数调用的实现。覆写提供了子类中改变父类方法行为的实现。
9、在方法定义中,virtual有什么含意?
答:被virtual修饰的方法可以被子类覆写。
10、能够阻止某一个类被其他类继承么?
答:可以,使用关键字sealed.
11、能够实现允许某个类被继承,但不允许其中的某个方法被覆写么?
答:可以,标记这个类为public,并标记这个方法为sealed.
12、什么是抽象类(abstract class)?
答:一种不可以被实例化的类。抽象类中一般含有抽象方法,当然也可有具体实现。继承类只有实现过所有抽象类的抽象方法后才能被实例化。
13、何时必须声明一个类为抽象类?
答:当这个类中包含抽象方法时,或是该类并没有完全实现父类的抽象方法时。
14、接口(interface)是什么?
答:只含有共有抽象方法(public abstract method)的类。这些方法必须在子类中被实现。
15、为什么不能指定接口中方法的修饰符?
答:接口中的方法用来定义对象之间通信的契约,指定接口中的方法为私有或保护没有意义。他们默认为公有方法。
16、可以继承多个接口么?
答:当然。
17、接口和抽象类的区别是什么?
答:接口中所有方法必须是抽象的,并且不能指定方法的访问修饰符。抽象类中可以有方法的实现,也可以指定方法的访问修饰符。
18、如何区别重载方法?
答:方法名称相同,不同的参数类型,不同的参数个数
19、const和readonly有什么区别?
答:const关键字用来声明编译时常量,readonly用来声明运行时常量。
20、System.String 和System.StringBuilder有什么区别?
答:System.String是不可变的字符串。System.StringBuilder存放了一个可变的字符串,并提供一些对这个字符串修改的方法。
21、C#用多种修饰符来表达类的不同性质。根据其保护级C#的类有五种不同的限制修饰符,请写出并指出它们之间的区别是什么?
答:
public 可以被任意存取
protected只可以被本类和其继承子类存取
internal只可以被本组合体(Assembly)内所有的类存取,组合体是C#语言中类被组合后的逻辑单位和物理单位,其编译后的文件扩展名往往是“.DLL”或“.EXE”。
protected internal唯一的一种组合限制修饰符,它只可以被本组合体内所有的类和这些类的继承子类所存取。
private只可以被本类所存取。