01:在C#中,string str = null 与 string str = “” 请尽量使用文字或
string str =""初始化对象分配空间
而string str=null初始化对象
象说明其中的区别。
02:简述类和结构的相同点和不同点。并用代码举例。
1、结构是值类型,类则是引用类型
2.类可以被继承,而结构则不支持。
public string Name
{
get{return_name;}
set{_name=value;}
}
public struct Student
{
public int _id;
public int _age;
}
3.结构体和类同样能够定义字段,方法和构造函数,都能实例化对象
03:什么是拆箱和装箱?举例说明
装箱:将值类型转化为引用类型
拆箱:将引用类型转化为值类型
04:编程实现一个冒泡排序
int i = 0;
int j = 0;
assert(arr);
for(i=0;i<sz-1;i++){
for(j=0;j<sz-i-1;j++){
if(arr[j]>arr[j+1]){
int tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
}
}
05:编程实现一个递归方法
int fibonaci(int i)
{
if(i == 0)
{
return 0;
}
if(i == 1)
{
return 1;
}
return fibonaci(i-1) + fibonaci(i-2);
}
int main()
{
int i;
for (i = 0; i < 10; i++)
{
printf("%d\t\n", fibonaci(i));
}
return 0;
}
06:说说目前学的集合有哪些?,每一种集合的特点以及使用场景
ArrayList:它基本上可以替代一个数组。但是,与数组不同的是,您可以使用索引在指定的位置添加和移除项目,动态数组会自动重新调整它的大小。它也允许在列表中进行动态内存分配、增加、搜索、排序各项。
Hashtable:当您使用键访问元素时,则使用哈希表,而且您可以识别一个有用的键值。哈希表中的每一项都有一个键/值对。键用于访问集合中的项目。
泛型集合:可以约束他所存储的对象类型,访问集合中的元素无须进行类型转换
07:变量被标记为 “const” 和readonly” 有何不同?
const:const修饰的常量在声明的时候必须初始化,只读 但不能修改
readonly:readonly修饰的常量则可以延迟到构造函数初始化 ,只读可修改
08:“out” 和 “ref” 参数有何不同?用代码举例
ref:参数的参数必须最先初始化,ref则用在需要被调用的方法修改调用者的引用的时候
class RefExample
{
static void Method(ref int i)
{
i = 44;
}
static void Main()
{
int val = 0;
Method(ref val);
// val is now 44
}
}
out:参数在传递之前不需要显式初始化,out适合用在需要retrun多个返回值的地方
class OutExample
{
static void Method(out int i)
{
i = 44;
}
static void Main()
{
int value;
Method(out value);
// value is now 44
}
}
09:“StringBuilder” 和 “String” 有何不同?
string 对象时恒定不变的,stringBuider对象表示的字符串是可变的