C#基础2

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

答:第一个 str赋值的是null 赋值了null 但没有开辟空间,在第二个str赋值的是“ ” 它赋值了也开辟了新的空间

 


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

public class Class1
    {
        public int Show1(out int num1)
        {
            num1 = 10;
            return num1;
        }
        public int Show2(ref int num2)
        {
            return num2;
        }
    }


答:结构不可以new 不可以包含方法 只能包含变量 结构是值类型 结构不能定义无参数的构造方法。类可以new 可以有方法 类是引用类型。

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

答:

装箱:将值类型包装为引用类型
拆箱:将引用类型转换为值类型 
例如

objetct  obj = null;
obj = 1;  //装箱
int i = (int) obj;  //拆箱


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

int [] array = new int [*] ;

  int temp = 0 ;

  for (int i = 0 ; i < array.Length - 1 ; i++)

  {

    for (int j = i + 1 ; j < array.Length ; j++)

    {

      if (array[j] < array[i])

      {

        temp = array[i] ;

        array[i] = array[j] ;

        array[j] = temp ;

      }

    }

  }


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


public struct Sum
    {
        public int Sum(int sum)
        {
            if (sum==1)
            {
                return sum;
            }
            return sum * Sum(sum - 1);
        }
    }


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

答:ArrayList,List,Hashtable,Dictionary<key,value>

ArrayList和List获取,删除元素是通过下标或对象名获取;

Hashtable,和Dictionary<key,value>获取,删除元素是通过key获取。

List和Dictionary<key,value>访问元素无须转换

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

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

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

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

答: 

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

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

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

答:String 在进行运算时(如赋值、拼接等)会产生一个新的实例,而 StringBuilder 则不会。

所以在大量字符串拼接或频繁对某一字符串进行操作时最好使用 StringBuilder,不要使用 String
如果要操作一个不断增长的字符串,尽量不用String类,改用StringBuilder类。

两个类的工作原理不同:String类是一种传统的修改字符串的方式,它确实可以完成把一个字符串添加到另一个字符串上的工作没错。

但是在.NET框架下,这个操作实在是划不来。因为系统先是把两个字符串写入内存,接着删除原来的String对象,然后创建一个String对象,并读取内存中的数据赋给该对象。这一来二去的,耗了不少时间。
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值