C#基础2

it2022-05-05  244

01:在C#中,string str = null 与 string str = “” 请尽量使用文字或图象说明其中的区别。

string str= " ",表示一个空串,被实列化了,占用了内存空间, string str=null,表示一个空引用,没有占用了空间,

02:简述类和结构的相同点和不同点。并用代码举例。

结构与类有很多相似之处:结构可以实现接口,并且可以具有与类相同的成员类型。

类:引用类型,一般需要封装有属性,有默认构造函数,new时字段可以不完全初始化

结构:值类型,一般公开字段无属性,无默认构造函数,必须完全初始化

public struct Person { 结构示例: string Name; int height; int weight public bool overWeig() { //implement something } } 类示例: public class Test { int hours; int minutes; int seconds; public void Show() { //implementation of behavior } }

03:什么是拆箱和装箱?举例说明

拆箱是把“引用”类型转换成“值”类型;

装箱是把“值”类型转换成“引用类型”;

例如:

bool aa=true; object bb=aa; //装箱 bool cc=(bool)bb; //拆箱

04:编程实现一个冒泡排序

static void Main(string[] args) { Console.WriteLine("将10个数存入数组中,然后实现冒泡排序"); double[] c = new double[10] { 2, 3, 5, 7, 12, 27, 77, 23, 17, 99 }; int i, j; double m; for (i = 0; i < 10; ++i) for (j = 0; j < 10 - i - 1; ++j) { if (c[j] > c[j + 1]) { m = c[j]; c[j] = c[j + 1]; c[j + 1] = m; } } Console.Write("10个数冒泡排序后(按从小到大的顺序)为:"); foreach (double var in c) { Console.Write(var); Console.Write(" "); } Console.ReadKey(); }

05:编程实现一个递归方法

public static int F(int n) { int sum=0; if(0==n) { return 1; } else{ sum=n*F(n-1); } return sum; }

06:说说目前学的集合有哪些?,每一种集合的特点以及使用场景

List<T>   Dictionary<K,V>  ArrayList

07:变量被标记为 “const” 和readonly” 有何不同?

const修饰的常量在声明的时候必须初始化;

readonly修饰的常量则可以延迟到构造函数初始化 ;

08:“out” 和 “ref” 参数有何不同?用代码举例

ref型参数 public void sum(ref int a, int b) { a += b; } out型参数 public void sum1(out int a, int b) { a = b+2; } public static void Main(string[] args) { C c = new C(); int a = 1, b = 2; c.sum(a,b); Console.WriteLine("a:{0}", a); a = 1; b = 2; c.sum(ref a, b); Console.WriteLine("ref a:{0}", a); a = 1; b = 2; c.sum1(out a, b); Console.WriteLine("out a:{0}", a); }

09:“StringBuilder” 和 “String” 有何不同?

string 对象时恒定不变的,stringBuider对象表示的字符串是可变的。stringBuilder是.net提供的动态创建string的高效方式,以克服string对象恒定性带来的性能影响。

 

 

 


最新回复(0)