欢迎来到光光的奇妙冒险,我是你们的煎饼光子老师。
今天是我们的第13期试题总结。
C#部分:
1、C#中哪些变量类型是值类型(至少说出13种),哪些是引用该类型(至少说出5种)
答案:
值类型:
int、float、double、byte、short、long、uint、ulong、uint、sbyte、decimal、char、bool、自定义结构体
引用类型:
自定义类、数组、字符串、委托、接口、Object
2、
(1).在自定义类中声明的成员变量,类型为int,该int变量存储在栈上还是堆上?
(2).在自定义结构体中声明的成员变量,类型为string,该string变量存储在栈上还是堆上?
答案:
1.堆上
自定义类中声明的成员变量,无论什么类型,都会存储在堆上。
类(引用类型)的实例本身存储在堆上,而成员变量也存储在该实例所指向的内存区域(堆上)
2.堆上
在结构体变量中的引用类型成员实际上会存储在堆上。虽然结构体本身是值类型,存储在栈上,但是如果结构体的成员包含引用类型,那么引用类型的对象会存储在堆上,而结构体的实例内部会包含对这些堆上对象的引用。
3、C#中在什么情况下会选择使用接口,什么情况下会选择使用抽象类?
答案:
接口:
1.不同对象的共同行为
2.需要多继承时
抽象类:
1.同类对