• .NET基础知识(十)


    1、short s=1;s=s+1;有错么?short s=1;s+=1;有错么?
    答:short s=1;s=s+1;
    这句不会通过编译(类型转换错误),因为s+1,其中1为int型,而s会隐式转换为int再和1进行运算,运算结果自然是int,而int则无法隐式转换回short,所以这里是错的。
    short s=1;s+=1;
    这句是则不会报错,因为s+=1,相当于s=(short)(s+1),在运算后赋值前进行了显式类型转换。

    2、产生一个int数组,长度为100,并向其随机插入1-100,并且不能重复(要求使用两种方法)。
    答://方法一
    List<int> list = new List<int>();
    Random rand = new Random();
    while (list.Count < 100)
    {
    int num = rand.Next(1, 101);
    if (!list.Contains(num))
    {
    list.Add(num);
    }
    }

    //方法二
    int[] arr = new int[100];
    for (int i = 0; i < 100; i++)
    {
    arr[i] = i + 1;
    }
    Random rand1 = new Random();
    for (int i = 0; i < 100; i++)
    {
    int m = rand1.Next(0, 100);
    int n = rand1.Next(0, 100);
    int temp = arr[m];
    arr[m] = arr[n];
    arr[n] = temp;
    }

    3、C#中的委托是什么?事件是不是一种委托?事件和委托的关系。
    答:委托可以把一个方法作为参数代入另一个方法。
    委托可以理解为指向一个函数的指针。
    委托是类型,事件是对象。
    事件的内部是用委托实现的,对于事件来讲,外部只能注册自己(+=)和注销自己(-=)。
    事件内部就是一个private的委托和add(+=)、remove(-=)两个方法。

    4、属性和字段的区别是什么?
    答:属性可以对值的获取和设置进行控制,而字段不能。
    一般情况下get读取的值就是set设置的值。
    如果只有get,则说明值是只读。
    如果只有set,则说明值是只写。
    get和set的本质是就是内部方法。

    5、C#的接口和类有什么异同?
    答:不同点:
    不能直接实例化接口。
    接口不包含方法的实现。
    接口可以继承,类只能单继承。
    类定义可在不同的源文件之间进行拆分。
    相同点:
    接口、类和结构都可以从多个接口继承实现。
    继承接口的任何非抽象类型都必须实现接口的所有成员。
    接口和类都可以包含事件、索引、方法和属性。

  • 相关阅读:
    团队冲刺第四天
    团队冲刺第三天
    找1的个数
    寻找最水之王
    最优价格买书
    团队冲刺第二天
    团队冲刺第一天
    团队开发项目特点
    第一阶段冲刺站立会议报告——4
    第一阶段冲刺站立会议报告——3
  • 原文地址:https://www.cnblogs.com/ZSY199678/p/7739150.html
Copyright © 2020-2023  润新知