zoukankan      html  css  js  c++  java
  • .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#的接口和类有什么异同?
    答:不同点:
    不能直接实例化接口。
    接口不包含方法的实现。
    接口可以继承,类只能单继承。
    类定义可在不同的源文件之间进行拆分。
    相同点:
    接口、类和结构都可以从多个接口继承实现。
    继承接口的任何非抽象类型都必须实现接口的所有成员。
    接口和类都可以包含事件、索引、方法和属性。

  • 相关阅读:
    Redis连接池的介绍和原理
    Golang操作第三方开源Redis库
    Redis的五大数据类型和CRUD操作
    Redis的基本使用
    Redis数据库的基本介绍和安装
    Golang基于TCP协议实现简单的server和client聊天
    Golang反射中的Type和Kind的区别
    Golang中的常量
    Golang对基本数据类型和结构体进行反射
    Vue 使用lodash库减少watch对后台请求压力
  • 原文地址:https://www.cnblogs.com/ZSY199678/p/7739150.html
Copyright © 2011-2022 走看看