C# 变量-类型推断

声明变量的语法有些变化:使用var关键字代替实际的类型。

编译器可以根据变量的初始化值 “推断” 出变量的类型。 

例如:

var score = 0;

编译器会将它变成 

int score = 0;

即使 score 从来没有声明 int, 编译器也可以确定。编译后上面的2个语句是等价的。

给出一个小例子,大家测试一下哈:

static void Main()
{
    var name = "Hui Yang";
    var age  = 29;
    var isPlay = true;
    
    Type nameType     = name.GetType();
    Type ageType      = age.GetType();
    Type isPlayType   = isPlay.GetType();

    Console.WriteLine("name is type   = "   + nameType);
    Console.WriteLine("age is type    = "   + ageType);
    Console.WriteLine("isPlay is type = "   + isPlayType );
}

// 程序输出:
// name is type   = System.String
// age is type    = System.Int32
// isPlay is type = System.Bool

需要遵循一些规则:

  • 变量必须初始化。 否则,编译器就没有推断变量类型的依据。
  • 初始化器不能为空。
  • 初始化器必须放在表达式中。
  • 不能把初始化器设置为一个对象,除非在初始化器中创建一个新对象。

声明了变量,推断出了类型后, 就不能改变变量的类型了。

发布了27 篇原创文章 · 获赞 0 · 访问量 164

猜你喜欢

转载自blog.csdn.net/weixin_39328209/article/details/105483390