C#类

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

string str =""初始化对象分配空间
而string str=null初始化对象
更详细的解释
这样定义后,str1是一个空字符串,空字符串是一个特殊的字符串,只不过这个字符串的值为空,在内存中是有准确的指向的。string str2=null,这样定义后,只是定义了一个string 类的引用,str2并没有指向任何地方,在使用前如果不实例化的话,将报错。

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

访问修饰符  struct  结构名                          

{                                                              
    //结构体                                                              
}                                                             

 访问修饰符   class  类名

  {

//代码块

    }

相同点:

都可以有字段,也可以有方法
不同点:

定义时,结构中的字段不能被赋初值

结构声明可以不用new ,直接定义结构的对象

声明结构的对象后,必须给结构的成员赋初值

类是引用类型,结构是值类型
 

03:什么是拆箱和装箱?举例说明
装箱 :   值类型转引用类型;

例:int num = 2;
    string str = num.ToString();

拆箱:引用类型转值类型;

例:string str = "2";
     int num = Convert.ToInt32(str);

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

int[] num = { 3, 2, 5, 1 ,4};
            for (int i = 0; i < num.Length; i++)
            {
                for (int j = 0; j < num.Length-1-i; j++)
                {
                    if (num[i]>num[j+1])
                    {
                        int item = num[i];
                        num[i] = num[j+1];
                        num[j+1] =item;
                    }
                }
            }

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

public  int   Num(int nums)
        {
            if (nums == 2 || nums == 3)
                return nums;
            else
                return Num(nums - 1) + Num(nums - 2);
        }

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

ArrayList arraylist=new ArrayList(); 
特点:集合添加的值都会进行装箱处理,应为ArrayList只能添加object类型
取值的时候需要进行类型转换
List<string> list=new List<string>();

新增数据需要进行类型安全验证
获取数据的时候不用去强转
Hashtable hashtable = new Hashtable();

存储的是键值对集合,一个空间放两个值(key,value);
获取数据是不能通过下标取值,所以它只能通过foreach遍历数据;
新增数据不用进行类型安全验证
Dictionary<int, string> pairs = new Dictionary<int, string>();

存储的是键值对集合,一个空间放两个值(key,value),并且要进行类型安全验证;
取值和Hashtable一样


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

const修饰的常量在声明的时候必须初始化;readonly修饰的常量则可以延迟到构造函数初始化 

const修饰的常量在编译期间就被解析,即常量值被替换成初始化的值;readonly修饰的常量则延迟到运行的时候

      此外const常量既可以声明在类中也可以在函数体内,但是static readonly常量只能声明在类中。

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

1、ref传进去的参数必须在调用前初始化,out不必,即:
int i;
SomeMethod( ref i );//语法错误
SomeMethod( out i );//通过

2、ref传进去的参数在函数内部可以直接使用,而out不可:
public void SomeMethod(ref int i)
{
   int j=i;//通过
   //...
}
public void SomeMethod(out int i)
{
   int j=i;//语法错误

}

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

对于创建成功的string,内容不能被改变和编译。虽然使用“+”可以达到附加新字符或字符串的目的,但“+”会产生一个新的String 实例,在内存中创建新的字符串对象。而StringBuilder 对象是一个可变的字符序列,它不会在内存中创建新的字符串对象;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值