C#类型推断(type interface)使用var关键字。

来源:互联网 发布:cg软件作用 编辑:程序博客网 时间:2024/05/17 22:06

C#类型推断(type interface)使用var关键字。

声明变量的语法有些变化。编译器可以根据变量的初始化值“推断”变量的类型。

例如:

int someNumber = 0;

就变成:

var someNumber = 0;

即使someNunber从来没有声明为int,编译器也可以确定,只要someNunber在其作用域内,就是一个int。

编译后,上面两个语句是等价的。

下面是另一个小例子:


using System;namespace Wrox{class Program{static void Main(string[] args){var name = "Bugs Bunny";var age = 25;var isRabbit = true;
Type nameType = name.GetType();Type ageType = age.GetType();Type isRabbitType = isRabbit.GetType();
Console.WriteLine("name is type " + nameType.Tostring());Console.WriteLine("age is type " + ageType.Tostring());Console.WriteLine("isRabbit is type " + isRabbitType.Tostring();
}}}




这个程序的输出如下:

name is type system.string
age is type system.Int32

isRabbit is type system.Bool


需要遵循一些规则:
● 变量必须初始化。否则,编译器就没有推断变量类型的依据。
●初始化器不能为空。
●初始化器必须放在表达式中。1

●不能把初始化器设置为一个对象,除非在初始化器中创建了一个新对象。


声明了变量,推断出了类型后,就不能改变变量类型了。变量的类型确定后,就遵循其他变量类型遵循的强类型化规则.
0 0