01:在C#中,string str = null 与 string str = “”
string str = "" 创建了内存空间,str中存放的是指向堆中的指针。
string str = null 没有创建内存空间,str中存放的是空引用指针;
02:简述类和结构的相同点和不同点。
都是通过new来实例化。
类支持继承,结构不支持继承。
类通过class声明,结构通过struct声明。
03:什么是拆箱和装箱?
拆箱:将引用类型转换为值类型 装箱:将值类型包装为引用类型
04编程实现一个冒泡排序
int temp = 0;
int[] arr = { 22, 30, 59, 26, 202, 30, 241 };
for (int i = 0; i < arr.Length; i++)
{
for (int j = 0; j <arr.Length-1-i; j++)
{
if (arr[j]>arr[j+1])
{
temp = arr[j + 1];
arr[j + 1] = arr[j];
arr[j] = temp;
}
}
}
Console.WriteLine("排序后是");
foreach (int item in arr)
{
Console.WriteLine(item+"");
}
05:编程实现一个递归方法
int age(int num){
if(num == 1){
return 10;
}
return age(num - 1) + 2;
}
int main(){
printf("第5个人的年龄是%d\n",age(5));
return 0;
}
06:说说目前学的集合有哪些?,每一种集合的特点以及使用场景
DictionaryDictionary,List其中的值允许重复,因为其为有序的数据结构,ArrayList应用程序对数据有较多的随机访问,
Hashtable不允许null作为key、value,当出现null值会抛出异常。
07:变量被标记为 “const” 和readonly” 有何不同?
const 的概念就是一个包含不能修改的值的变量
readonly 允许把一个字段设置成常量,但可以执行一些运算,可以确定它的初始值
08:“out” 和 “ref” 参数有何不同?用代码举例
out参数的函数调用可以当作被传入变量的初始化,即调用之前,变量可以不必初始化,而如果是ref参数的函数调用的话,在调用之前,变量一定要初始化。
09:“StringBuilder” 和 “String” 有何不同?
String可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了存储数值不可改变的字符串。
StringBuilder是线程不安全的,运行效率高,如果一个字符串变量是在方法里面定义,这种情况只可能有一个线程访问它,不存在不安全的因素了,则用StringBuilder