CHP02

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

1.""分配了内存;null没有分配内存。

2.""是一个字符串(String).它在内存中是存在的.而null它是一个空对象.在内存中是不存在的。

3.""占内存,在内存中会分配一个空间。null不占内存. 为空引用.

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

//类
class Person
{
    private string name;
    private int age;
    public void SayHi()
    {
        Console.WriteLine("Hello,My Name is "+this.name+",My Age is "+this.age);
    }
}


//结构
struct Rectangle
{
    private int width;
    private int height;
    public int GetArea()
    {
        return this.width * height;
    }
}

1.类型不同:结构是一种值类型,而类是引用类型。值类型用于存储数据的值,引用类型用于存储对实际数据的引用。那么结构体就是当成值来使用的,类则通过引用来对实际数据操作。

2.存储不同:结构使用栈存储,而类使用堆存储。栈的空间相对较小.但是存储在栈中的数据访问效率相对较高.堆的空间相对较大.但是存储在堆中的数据的访问效率相对较低。

3.作用不同:类是反映现实事物的一种抽象,而结构体的作用只是一种包含了具体不同类别数据的一种包装,结构体不具备类的继承多态特性。

4.关键字不同:在类中可以使用但是在结构中限制使用的关键字有:abstract、sealed、protected;StaTIc关键字可以用在类名前面用来声明静态类,但是不能用在struct前面,不存在静态结构。

5.初始化不同:类可以在声明的时候初始化,结构不能在申明的时候初始化(不能在结构中初始化字段),否则报错。

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

int i=123;
object 0=i; //装箱
int j=(int)o;//拆箱

将值类型转换为引用类型的过程称为装箱,反之称为拆箱
04:编程实现一个冒泡排序

int main()
{
    int nums[10] = {4, 5, 2, 10, 7, 1, 8, 3, 6, 9};
        int i, j, temp, isSorted;
        for(i=0; i<10-1; i++)
        {
            isSorted = 1;
            for(j=0; j<10-1-i; j++)
            {
                if(nums[j] > nums[j+1])
                {
                    temp = nums[j];
                    nums[j] = nums[j+1];
                    nums[j+1] = temp;
                    isSorted = 0;
                }
            }
            if(isSorted) break;
            for(i=0; i<10; i++){
            printf("%d ", nums[i]);
    }
    printf("\n");
    return 0;
}


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

double fab(int n) 
{ 
   if(n == 0 || n == 1){ 
     return 1; 
   }else{ 
     return n*fab(n-1); 
   } 
} 


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

ArrayList,HashTable,List<T>,Dictionary<K,V>

 

为了建立一个动态的"数组",引入了非泛型ArrayList。

为了建立一个"字典",引入了非泛型HashTable。

为了建立一个动态的类型安全的"数组",引入了泛型List<T>。

为了建立一个类型安全的"字典",引入了泛型Dictionary<object,object>。


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

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

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

ref是引用把值类型转换成弓用,out是输出,区别是ref是输入兼输出的,out只是单纯的输出

public void num(ref int num1, ref int num2){ }

public void num(out int num1, out int num2){ }
09:“StringBuilder” 和 “String” 有何不同?

用string += 追加的时候会分配新的地址,StringBuilder不会 ,所以StringBuilder的运行速度会快,不会浪费资源空间。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值