C#隐式类型

隐式类型

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 隐式类型var
{
    class Program
    {
        static void Main(string[] args)
        {
            //优点:不需要在左侧也加上Dictionary<string,string>代码得到简化
            var dict = new Dictionary<string, string>();

            //缺点:从代码上来看不知道具体类型,不容易理解
            var a = 2147483649;
            var b = 928888888888888888;
            var c = 2147483644;
            Console.WriteLine("变量a的类型为:{0}", a.GetType());
            Console.WriteLine("变量b的类型为:{0}", b.GetType());
            Console.WriteLine("变量c的类型为:{0}", c.GetType());
            //隐式类型数组
            var intarray = new[] { 1, 2, 3, 4 };
            var stringarray = new[] { "s", "ad" };

            //匿名类型
            var person = new { Name = "谢峰", Age = "23" };
            Console.WriteLine("{0} 的年龄为:{1}", person.Name, person.Age);

            //定义匿名类型数组
            var personcollection = new[]
                {
                    new {Name="sam",Age=13},
                    new {Name="tom",Age=14},
                    new {Name="jeny",Age=17},
                };
            var totalAge = 0;
            foreach (var p in personcollection)
            {
                totalAge += p.Age;
            }
            Console.WriteLine("所有人的年龄和为:{0}", totalAge);
            Console.Read();

        }
    }
}
时间: 2024-11-03 21:21:46

C#隐式类型的相关文章

理解隐式类型、对象初始化程序和匿名类型

在C# 3.0中,几乎每个新特性都是为LINQ服务的.所以,本文将介绍下面几个在C# 3.0中引入的新特性: 自动实现的属性 隐式类型的局部变量 对象和集合初始化程序 隐式类型的数组 匿名类型 其实这几个特性都是比较容易理解的,对于这几个特性,编译器帮我们做了更多的事情(想想匿名方法和迭代器块),从而简化我们的代码. 自动实现的属性 在C# 3.0以前,当我们定义属性的时候,一般使用下面的代码 public class Book { private int _id; private string

.NET中那些所谓的新语法之一:自动属性、隐式类型、命名参数与自动初始化器

开篇:在日常的.NET开发学习中,我们往往会接触到一些较新的语法,它们相对以前的老语法相比,做了很多的改进,简化了很多繁杂的代码格式,也大大减少了我们这些菜鸟码农的代码量.但是,在开心欢乐之余,我们也不禁地对编译器内部到底为我们做了哪些事儿而感到好奇?于是,我们就借助反编译神器,去看看编译器到底做了啥事!其实本篇中很多都不算新语法,对于很多人来说可能都是接触了很久了,这里主要是针对.NET的老版本来说,是一个“相对”的新语法. /* 新语法索引 */ 1.自动属性 Auto-Implemente

javascript中的隐式类型转化

javascript中的隐式类型转化 #隐式转换 ## "+" 字符串和数字 如果某个操作数是字符串或者能够通过以下步骤转换为字符串的话,+将进行拼接操作. 如果其中一个操作数是对象(包括数组),则首先对其调用`ToPrimitive`抽象操作,该抽象操作再调用`[[DefaultValue]]`,以数字作为上下文. `[1,2]+[3,4]=='1,23,4'` 原因,因为数组的valueOf操作无法得到简单的基本类型,于是它转而调用toString.因此上栗得到的是'1,23,4'

隐式类型、对象集合初始化、匿名类型

隐式类型和对象集合初始化器是在C# 3.0中引入的. 1 隐式类型 var关键字,主要还是编译器根据变量的值来推断其类型. 1.1隐式类型的局部变量 1 class Program 2 { 3 static void Main(string[] args) 4 { 5 var stringvariable="learning hard"; 6 stringvariable=2; 7 } 8 } 其实当你把鼠标放在var上面的时候,还是可以看到其类型的. 使用隐式类型时有一些限制,包括一

C#语法糖之第一篇:自动属性&amp;隐式类型

今天给大家分享一下C#语法糖的简单的两个知识点吧. 自动属性:在 C# 4.0 和更高版本中,当属性的访问器中不需要其他逻辑时,自动实现的属性可使属性声明更加简洁. 客户端代码还可通过这些属性创建对象. get and set accessors." id="mt3">如下面的示例所示声明属性时,编译器将创建一个私有的匿名支持字段,该字段只能通过属性的 get 和 set 访问器进行访问. 我们C#4.0以前的传统方式的属性是用来封装字段的,这里我简单的对比一下这两种方

C#4.0语法糖之第一篇:自动属性&amp;隐式类型

今天给大家分享一下C#语法糖的简单的两个知识点吧. 自动属性:在 C# 4.0 和更高版本中,当属性的访问器中不需要其他逻辑时,自动实现的属性可使属性声明更加简洁. 客户端代码还可通过这些属性创建对象. get and set accessors." id="mt3">如下面的示例所示声明属性时,编译器将创建一个私有的匿名支持字段,该字段只能通过属性的 get 和 set 访问器进行访问. 我们C#4.0以前的传统方式的属性是用来封装字段的,这里我简单的对比一下这两种方

隐式类型var

隐式类型var (1)现在越来越多的项目中你可以看到var,这是什么意思呢?其实这就是C#3.0新特性提供的隐士类型var,var关键字指示编译器根据初始化语句右侧的表达式推断变量的类型. var Kencery="大家晚上好";   //定义变量 var list=new List<int>();    //定义一个List集合 var Kencery=new{ID=1,Name="HYL",age=24}  //对象初始化起定义的类型 var gen

C#隐式类型局部变量&amp;隐式类型数组

[隐式类型局部变量] 可以赋予局部变量推断“类型”var 而不是显式类型.var 关键字指示编译器根据初始化语句右侧的表达式推断变量的类型.推断类型可以是内置类型.匿名类型.用户定义类型或 .NET Framework 类库中定义的类型. // i is compiled as an int var i = 5; // s is compiled as a string var s = "Hello"; // a is compiled as int[] var a = new[] {

c#4.5新语法--自动属性和隐式类型

1.自动属性    自动属性是c#中属性定义的两种形式的一种:传统属性定义.自动属性.    1.1 传统属性定义        private int _age;        public int Age        {            get { return _age; }            set { _age = value; }        } 1.2 自动属性         public int Age{get;set;}//该句代码的作用和上面传统属性定义的语句