zoukankan      html  css  js  c++  java
  • 类型推理 var

    一.var

    C#是一种强类型化的语言,这表示每个变量都有固定的类型,只能用于接受该类型的代码中。

    int myvar = 5;

    C#3.0引入了新关键字var,它可以代替前面的代码中的type:

    var myvar = 5;

    myvar是int类型的变量,而不是var类型的变量,这一点非常的重要,使用var时,并不是声明了一个没有类型的变量,也不是声明了一个类型可以变化的变量,否则C#就不在是强类型化语言了。如果编译器不能确定用var声明的变量类型,代码就不会通过编译,因此,在用var声明变量时,必须同时初始化该变量,因为如果没有初始化,编译器就不能确定该变量的类型。

    var关键字还可以通过数组初始化器来推断数组的类型:

    var myArray =new int[] {4,5,6};

    在用这种方法隐式指定数组的类型时,初始化器中使用的数组元素必须是以下情形中的一种:

    • 相同的类型
    • 相同的引用类型或null
    • 所有元素的类型都可以隐式的转换为一个类型

    以下代码无法通过编译:

                var myArray = new[] { 4,null,2};
    
                var myArray1 = new[] { 4, "not int", 2 };

    下面的可以通过编译:

    var myArray = new int?[] { 4,null,2};

    二.总结

    类型推理功能本身并不是很有效,它有时候会使事情变的更复杂。

    但是类型推理的概念很重要,因为他是其他技术的基础。

  • 相关阅读:
    CTF工具使用
    关于CTF的Misc
    stegsolve使用方法
    CTF练习平台
    关于命令执行漏洞深入学习
    redis未授权访问漏洞复现
    Vulnhub实战靶场:DC-2
    Vulnhub实战靶场:DC-1
    NISP一级真题、NISP一级题库
    封神台靶场:萌新也能找CMS突破
  • 原文地址:https://www.cnblogs.com/zzunstu/p/3403948.html
Copyright © 2011-2022 走看看