一、简答题:
1、在C#的方法中void表示什么意思?
void表示方法无返回值
2、简述class类和struct结构的区别?
①类在声明字段时可以初始化字段;结构不能
②类是引用类型;结构是值类型
③类的构造方法可以初始化一部分字段;结构的构造方法必须初始化全部字段
④类使用时要创建(new);结构不需要
3、在字符串处理类中使用什么方法可以截图字符串中的部分内容?
substring(2,10) 从下标2开始,截取10个长度
4、简述数组和集合各自的应用场景,以及他们之间的优缺点?
【数组】有序,通过下标访问,速度快;固定长度
存放的数据安全,取出是不用做类型转换;只能存放固定数量的内容,只能存放固定类型
【集合】任意长度,长度可变
能存放任意类型的值,也能存放任意数量的内容;存放的数据不安全,取出时一定要做类型转换
5、请举例说明你所知道的C#数据类型转换方式分别有哪些?以及它们之间有什么区别?
【类型转换方式】强制类型转换(显示的转换);隐式类型转换(不需要手动转换,会自动转换,数据会丢失精度)
①(int)obj、Convert、int.Parse()等转换失败抛出异常;
②as转换失败为null或0,转引用类型;
③int.TryParse("zs",out result);
6、谈谈你理解的什么是装箱?什么是拆箱?并给出代码举例。
【装箱】值类型--换成--引用类型
int test1 = 1;
object obj = test;//基类(父类)
【拆箱】引用类型--换成--值类型
int hug = (int)obj;
7、简述引用类型和值类型的区别?
【引用类型】栈中存放地址和变量名,堆中放值(堆中有垃圾回收机制GC,不断地垃圾回收)
【值类型】栈中存放值,调用效率高,比较占内存
二、编程题
1、编写代码描述动态获取zhangsan@163.com和666888@qq.com 后面163.com或qq.com的域名部分?
static void Main(string[] args)
{
GetData();
}
public static void GetData()
{
Console.WriteLine("请输入您的邮箱:");
string email = Console.ReadLine();
int position = email.IndexOf("@");
string result = email.SubString(position+1);
Console.WriteLine(result);
}
2、创建一个学生类,字段有学号、姓名、年龄以及班级名称,添加构造方法。
在测试类中完成以下代码编写:
创建ArrayList集合,创建三个学生对象使用构造方法赋值,并添加到该集合中,创建一个老师对象也放到集合中。删除ArrayList中第二个加入的学生并循环打印剩余学生信息(注:循环时,类的兼容判断)。
见二十八
3、创建Hashtable集合,创建三个学生对象使用构造方法赋值,并添加到该集合中。根据Hashtable集合添加数据时的key值,删除其中一条信息,并循环打印剩余学生信息。(打印可以用foreach或for循环)
见二十八
4、使用:List<T>泛型集合完成第2题ArrayList集合的操作,使用Dictionary<K,V>完成第3题Hashtable集合的操作。
见二十八