1:在C#中,string str = null 与 string str = “” 请尽量使用文字或图象说明其中的区别。
这样定义后,str1是一个空字符串,空字符串是一个特殊的字符串,只不过这个字符串的值为空,在内存中是有准确的指向的。string str2=null,这样定义后,只是定义了一个string 类的引用,str2并没有指向任何地方,在使用前如果不实例化的话,将报错。
2:简述类和结构的相同点和不同点。并用代码举例。
//定义类的语法
class student
{
private string name;
private int age;
public void show()
{
Console.writeLine("hello“+this.name+"\t"+this.age);
}
}
//定义结构的方法
struct recht
{
private int width;
private int height;
public int Getart()
{
return this.width*height;
}
}
3:什么是拆箱和装箱?举例说明
将值类型转换为引用类型的称为装箱;
将引用类型转换为值类型的称为拆箱;
4:编程实现一个冒泡排序
//冒泡排序
int[] a = new int[5];
int s;
for (int i = 0; i < a.Length-1; i++)
{
for (int j = 0; j < a.Length-i-1; j++)
{
if (a[j] > a[j + 1])
{
s = a[j];
a[j] = a[j + 1];
a[j + 1] = s;
}
}
}
5:编程实现一个递归方法
//递归
public int Function(int num)
{
if (num == 1)
return num;
return Function(num - 1) * num;
}
6:说说目前学的集合有哪些?,每一种集合的特点以及使用场景
1、ArrayList集合 动态维护 访问元素是需要进行类型转换
2、Hashitable集合 类似字典 通过键/值对的形式存在,访问需要先进行类型转换
3、泛型集合 泛型集合可以约束它所储存的对象类型,访问集合中的元素无需进行类型转换
4、泛型集合List<T> List<T>的用法和ArrayList的用法相似,List<T>无需类型转换
5、泛型集合Dictionary<K,V> Dictionary<K,V> 的用法也和Hashitable的用法相似访问元素时也无需类型转换
7:变量被标记为 “const” 和readonly” 有何不同?
const修饰的常量在声明的时候必须初始化;readonly修饰的常量可以延迟到构造构造函数初始化;
const 只读 但不能修改 , readonly只读可修改
8:“out” 和 “ref” 参数有何不同?用代码举例
public void num(ref int num1; ref int num2){}
public void num(out int num1; out int num2){}
9:“StringBuilder” 和 “String” 有何不同?
string 对象时恒定不变的,stringBuider对象表示的字符串是可变的
当修改字符串信息时,此时不许创建对象,可以使用stringBuilder对象