关闭

类型推断 var

标签: C#.NET类型推断var
356人阅读 评论(0) 收藏 举报
分类:


类型推断(type inference)使用 var 关键字。编译器可以根据变量的初始化值“推断”变量的类型。

例如;

int number = 0;

就可以写成

var number = 0;

编译器可以“推断”出变量number为int类型。上面两个语句是等价的。

            var name = "bushitiancai";
            var age = 22;
            var isMan = true;

            Type nameType = name.GetType();
            Type ageType = age.GetType();
            Type isManType = isMan.GetType();

            Console.WriteLine("name is type "+nameType);
            Console.WriteLine("age is type "+ageType);
            Console.WriteLine("isMan is type "+ isManType);
输出结果:

            name is type System.String
            age is type System.Int32
            isMan is type System.Boolean

使用 var 关键字时,变量必须初始化,否则编译器就没有推断变量类型的依据。

一旦确认了变量类型,就不能再改变变量类型了。



1
0
查看评论

Java 10 - 与“var类型推断机制”的第一次亲密接触

引言 官方消息,Java 10 将在2018年3月20号正式发布。(我大Java 9 瞬间成了Vista……….)据传,官方在2017年12月14号已经完成了版本开发的主线合并。 迄今为止,在官方放出了Java 10少数新特性里面,局部变量类型推断(local-variable type infe...
  • rickiyeat
  • rickiyeat
  • 2018-01-18 23:41
  • 3273

JDK将新增局部变量类型推断功能

OpenJDK 提出一个新的计划, 准备为 Java 增加局部变量类型推断功能(local-variable type inference capability), 这让代码编写更简单, 同时也保证原有的静态类型安全特性。该计划于3月8号提出,文档地址为: JEP-286(JDK Enhanceme...
  • renfufei
  • renfufei
  • 2016-03-18 00:14
  • 3154

Swift的类型推断会不会造成类型不确定的困扰?

Swift的类型推断会不会造成类型不确定的困扰?标签(空格分隔): Swift 强类型 类型推断前言相信看过《The Swift Programming Language》的人对这门语言会有初步的印象:强类型。此外一个经常提到的特点就是类型推断。 强类型的意思就是一个变量或者常量要有确定的类型。类...
  • erwin2012
  • erwin2012
  • 2016-05-12 16:51
  • 565

java中var类型

java中是没有var类型的,在javascript中倒是有。 在javascript中,对变量的要求是不严格的。 用var声明一个变量,至于这个变量是什么类型的(比如String,int,double等)不做严格的限定。建立的变量原来是什么类型,则声明的var变量就是是什么类型。 比如: ...
  • mal327
  • mal327
  • 2011-11-06 10:34
  • 5651

2.4.1 C# 和 F# 中的类型推断

2.4.1 C# 和 F# 中的类型推断   大多数的类型有简称,例如 int 或 Random,只有很少一部分需要类型推断,因为手写类型名称并不困难。C# 2.0 支持泛型,因此,可以构造更复杂的类型。在函数语言中的类型,像 F#,是相当复杂的,尤其是把函数当作值使用,因此,还必须有...
  • hadstj
  • hadstj
  • 2014-09-02 16:19
  • 749

Java8 新特性之五---------参数名称和类型推断

Java 8编译器在类型推断方面有很大的提升,在很多场景下编译器可以推导出某个参数的数据类型,从而使得代码更为简洁。例子代码如下:package com.javacodegeeks.java8.type.inference;public class Value< T > { pu...
  • tieselingzhi
  • tieselingzhi
  • 2016-10-14 13:45
  • 1451

!!scala 【经典】一步一步推导!!高阶函数,类型推断

--函数返回函数 scala> def fun1(name1:String) = (name2:String) => println(name1+" "+name2) fun1: (name1: String)String => Unit --等号=左边是函数...
  • gdmzlhj1
  • gdmzlhj1
  • 2016-03-01 14:25
  • 590

JDK8 中的类型推断与重载解析

通过一个例子,从 javac 源代码的角度解析了 JDK6 与 JDK8 在类型推断与重载解析方面的不同。
  • on_1y
  • on_1y
  • 2016-02-10 17:32
  • 1873

Java 8 新特性:泛型目标类型推断

泛型目标类型推断
  • Sun_2134
  • Sun_2134
  • 2016-05-05 16:15
  • 2091

Swift语言的类型推断

之前我曾经自问过自己,Swift到底是静态语言还是动态语言,当时我的回答是静态语言,因为Swift对数据类型是严格限制的,是类型安全的语言,那么是什么让我形成这样的问题呢?Swift又是怎么做到那么像动态语言的呢?答案就是类型推断。
  • caowenbin
  • caowenbin
  • 2015-01-27 20:13
  • 2883
    个人资料
    • 访问:84243次
    • 积分:1321
    • 等级:
    • 排名:千里之外
    • 原创:45篇
    • 转载:18篇
    • 译文:0篇
    • 评论:5条