c#作业

本文详细介绍了C#中的各种编程技巧,包括string初始化的区别、类与结构的不同之处、装箱拆箱的概念及示例、冒泡排序与递归方法的实现、集合的种类及其应用场景、const与readonly的区别、out与ref参数的使用、StringBuilder与String的对比等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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对象表示的字符串是可变的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值