-
1.
传入某个属性的
set
< br>方法的隐含参数的名称是什么?
value
,它的类型和属性所声名的类型相同。
2.
如何在
C#
中实现继承?
在类名后加上一个冒号,再加上基类的名称。
3.
C#
支持多重继承么?
不支持。可以用接口来实现。
4.
被
protected
修饰的属性
p>
/
方法在何处可以访问?
在继承或间接继承与这个类的子类中可以访问。
5.
私有成员会被继承么?
会,但是不能被访问。所以看上去他们似乎是不能被继承的,但实际上确实被继承了。
6.
请描述一下修饰符
protected
internal
。
被
protected
intern
al
修饰的属性
/
方法只能在它的在同
一个程序集(
Assembly
)中的
子类被访问。
7.
C#
提供一个默认的无参数构造函数,
当我实现了另外一个有一个参数的构造
函数时
候,还想保留这个无参数的构造函数。这样我应该写几个构造函数?
两个,一旦你实现了一个构造函数,
C#
就不会再提供默认的构造函数了,
所以需要手动
实现那个无参数构造函数。
8.
C#
中所有对象共同的基类是什么?
.
9.
重载和覆写有什么区别?
重载提供了
对一个方法签名的不同参数调用的实现。
覆写提供了子类中改变父类方法行
为的实现。
1
10.
在方法定义中,
virtual
有什么
含意
被
virtual
修饰的方法可以被子类覆写。
11.
能够将非静态的方法覆写成静态方法么?
不能,覆写方法的签名必须与被覆写方法的签名保持一致,除了将
virtual<
/p>
改为
override
。
12.
可以覆写私有的虚方法么?
不可以,甚至子类中无法访问父类中的私有方法。
13.
能够阻止某一个类被其他类继承么
可以,使用关键字
sealed
。
14.
能够实现允许某个类被继承,但不允许其中的某个方法被覆写么
可以,标记这个类为
public
,并
标记这个方法为
sealed
。
15.
什么是抽象类(
abstract
class
)?
一种不可以被实例化
的类。抽象类中一般含有抽象方法,当然也可有具体实现。
继承类
只有实现过所有抽象类的抽象方法后才能被实例化。
16.
何时必须声明一个类为抽象类
当这个类中包含抽象方法时,或是该类并没有完全实现父类的抽象方法时。
17.
接口(
int
erface
)是什么?
只含有共有抽象方法
(
public
abstract
method
)<
/p>
的类。
这些方法必须在子类中被实现。
18.
为什么不能指定接口中方法的修饰符
接口中的方法用来定义对象之间通信的契约,指定接口中的方法为私有或保护没有意
义
。他们默认为公有方法。
19.
可以继承多个接口么
2
当然。
20.
那么如果这些接口中有重复的方法名称呢
< br>这种情况中你可以决定如何实现。
当然需要特别得小心。
但是在编译环节是没有问题的。
21.
接口和抽象类的区别是什么
接口中
所有方法必须是抽象的,
并且不能指定方法的访问修饰符。
抽象
类中可以有方法
的实现,也可以指定方法的访问修饰符。
22.
如何区别重载方法
不同的参数类型,不同的参数个数,不同的参数顺序。
23.
const
和
readonly
有什么区别?
const
关键字用来声明编译时常量,
readonly
用来声明运行时常量。
24.
和有什么区别?
< br>是不可变的字符串。存放了一个可变的字符串,并提供一些对这个字符串修改的方法。
1.
静态成员和非静态成员的区别?
和
static
readonly
区别?
是什么意思?
是什么意思?
修饰符起什么作用?
修饰符是干什么的?
和
overload
的区别?
8.
什么是索引指示器?
修饰符是起什么作用?
3
关键字的含义?
11.
可以使用抽象函数重写基类中的虚函数吗?
12.
密封类可以有虚函数吗?
13.
什么是属性访问器?
可以和
virtual
一起使用吗可以和
override
一起使用吗?
15.
接口可以包含哪些成员?
16.
类和结构的区别?
17.
接口的多继承会带来哪些问题?
18.
抽象类和接口的区别?
19.
别名指示符是什么?
20.
如何手工释放资源?
Invoke
是什么?
和
String
的区别?
和
implicit
的含义?
有什么用?
25.
什么是反射
以下是我做的一份参考答案(
C#
语言范畴之内),如果有不准确、不全面的,欢迎各
位朋友指正
!
1.
静态成员和非静态成员的区别
答:
4
静态变量使用
static
修饰符进行声明,在类被实例化时创建,通过类进行访问
不带有
static
修饰符声明的
变量称做非静态变量,
在对象被实例化时创建,
通过对象
进行访问
一个类的所有实例的同一静态变量
都是同一个值,
同一个类的不同实例的同一非静态变
量可以是不
同的值
静态函数的实现里不能使用非静态成员,如非静态变量
、非静态函数等
示例:
using System;
using
using
namespace Example01
{
class Program
{
class Class1
{
public static
String staticStr =
public String notstaticStr
=
}
static void Main(string[] args)
5
{
i++)
{
(((DeriveClass)sender)[i]);
}
}
static void Main(string[] args)
{
DeriveClass
tmpObj = new DeriveClass();
=
();
new A().G();
new B().F();
new B().G();
new C().F();
new C().G();
();
6
}
}
}
结果:
类
B
在继承类
A
时可以重写两个虚函数,如图所示:
由于类
B
中对
F
方法进行了密封,
类
C
在继承类
B
时只能重写一个函数,如图所
示:
控制台输出结果,类
C
的方法
F
只能是输出
类
B
中对该方法的实现:
和
overload
的区别
答:
override
表示重写,用于继承类对基类中虚成员的实现
overload
表示重载,用于同一个类中同名方法不同参
数(包括类型不同或个数不同)
的实现
7
示例:
using System;
using
using
namespace Example07
{
class Program
{
class BaseClass
{
public virtual
void F()
{
(
}
}
class DeriveClass : BaseClass
{
public override void F()
{
();
8
(
}
public void Add(int Left, int Right)
{
(
}
public void
Add(double Left, double Right)
{
(
}
}
static void
Main(string[] args)
{
DeriveClass tmpObj = new
DeriveClass();
();
(1, 2);
,
();
}
}
9
}
结果:
Add for Int: 3
Add for int:
8.
什么是索引指示器
答:
实现索引指示器(
indexer
)的类可以象数组那样使用其实例后的对象,但与数组不同<
/p>
的是索引指示器的参数类型不仅限于
int
简单来说,其本质就是一个含参数属性
示例:
using System;
using
using
namespace Example08
{
public class Point
10
{
private double
x, y;
public Point(double X, double Y)
{
x
= X;
y = Y;
}
{0} MSEL
}
public string
Test2()
{
long vTickCount =
for (int i =
0; i < i++)
value = ();
return (
}
}
class
UnitTransClass
{
public static double C2F(Class1 value)
{
11
4375 MSEL
Don't have
this.: 4406 MSEL
11.
可以使用抽象函数重写基类中的虚函数吗
答:
可以
需使用
new
修饰符显式声明,表示隐藏了基类中该函数的实现
或增加
override
修饰符,表示抽象重写了基类中该函数的实现
示例
:
class
BaseClass
{
public virtual void F()
{
(
}
}
abstract class
DeriveClass1 : BaseClass
{
public
abstract new void F();
}
12
封类可以有虚函数吗
答:
可以,
基类中的虚函数将隐式的转化为非虚函数,
但密封类本身不能再增加新的虚函数
示例:
class
BaseClass
{
public virtual void F()
{
(
}
}
sealed class
DeriveClass : BaseClass
{
么是属性访问器
答:
属性访问器(
Property
Accessor
),包括
get
访问器和
set
访问器分别用于字段的
读写操作
p>
其设计目的主要是为了实现面向对象(
OO
)中的封装思想。根据该思想,字段最好设为
private
,
一个精巧的类最好不要直接把字段设为公有提供给客户调用端直接访问
另外要注意属性本身并不一定和字段相联系
13