C#声明变量的那点事儿
C#声明变量的语法(三种):
类型 变量名(强类型声明)
var 变量名(待编译时确定类型)
dynamic 变量名(待执行时确定类型)
到底哪种执行效率高呢?
还是不说废话,上代码,需要知道结果,可以copy代码后执行看看:
[csharp]
using System;
using System.Diagnostics;
namespace Var_Test
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("本程序旨在测试 强类型 var(推断类型) dynamic(动态类型) 的执行效率");
Console.WriteLine("\t测试方法:");
Console.WriteLine("\t\t通过各种声明引用类型的变量1000000次,并计时,最后输出计时。");
Console.WriteLine("----\t测试\tvar(推断类型)\t----");
Stopwatch sw_2 = new Stopwatch();
sw_2.Start();
for (int i = 0; i < 1000000; i++)
{
var p = new People();
p.Name = i.ToString();
p.Age = i;
}
sw_2.Stop();
Console.WriteLine("----\t时间\t{0}", sw_2.ElapsedMilliseconds);
Console.WriteLine("----\t测试\t强类型\t----");
Stopwatch sw_1 = new Stopwatch();
sw_1.Start();
for (int i = 0; i < 1000000; i++)
{
People p = new People();
p.Name = i.ToString();
p.Age = i;
}
sw_1.Stop();
Console.WriteLine("----\t时间\t{0}",sw_1.ElapsedMilliseconds);
Console.WriteLine("----\t测试\tdynamic(动态类型)\t----");
Stopwatch sw_3 = new Stopwatch();
sw_3.Start();
for (int i = 0; i < 1000000; i++)
{
dynamic p = new People();
p.Name = i.ToString();
p.Age = i;
}
sw_3.Stop();
Console.WriteLine("----\t时间\t{0}", sw_3.ElapsedMilliseconds);
Console.WriteLine("测试结果:通过强类型声明和Var声明基本相当(Var略比强类型慢),原因,var在程序编译时确定类型,强类型在声明时确定类型。而.net应用程序在第一次执行时才进行具体编译。");
Console.WriteLine("\t\t通过dynamic声明变量,很耗时。");
Console.WriteLine("测试结束。按任意键退出。");
Console.ReadKey();
}
}
class People
{
public string Name { get; set; }
public int Age { get; set; }
}
}
作者:ymchinabye
补充:软件开发 , C# ,