C#3.0新特性(一)-隐式类型的局部变量和数组

写在前边:

用了aspdotnet一段时间了,对csharp还知之甚少,今天就从csharp的基本语法开始学习。内容多为前辈同仁们blog中已写过,加上自己得理解,只求能加深自己的印象,若能在cnblog中凑个数,那真是受宠若惊!

一.C# 3.0语言主要增强点

• 隐含类型局部变量

• 扩展方法

• 对象与集合初始化器

• 匿名类型

• Lambda表达式

• 查询表达式( LINQ )

• 表达式树

二.隐式类型的局部变量和数组

先来看看例句:

var i = 5;
var h = 23.56;
var s = "C Sharp";
var intArr = new[] { 1, 2, 3, 4 };
var a = new[] { 1, 10, 100, 1000 };
var str = new[] { "hello", null, "qun" };
var jcarr = new[]
{
new[] {1, 2, 3, 4},
new[] {5, 6, 7, 8}
};
var jcstr = new[]
{
new[] {"hello", "qun", "er", "wo"},
new[] {"xiang" , "ni", "le"}
};
var noname = new { name = "yaoyao", age = 24 };//匿名类型
var vlist = new List<int>();

时间: 2025-01-18 20:09:32

C#3.0新特性(一)-隐式类型的局部变量和数组的相关文章

C#3.0新特性之隐式类型局部变量的使用

变量 首先说明一下,此新特性的专题基于MS五月份分布的C#3.0规范,但是官方中文版还没有出来,结合自己的实践和理解,希望能和大家一起分享某些前沿的东东,很有可能一些地方会出错,望抛砖. 在C# 3.0里面, 可以对局部变量进行隐式类型声明, 就是在声明时可以不指定该变量的类型, 变量在初始化的时候会由编译器从表达式的上下文中推出真正的类型, 对开发者来说, 无疑是简化了很多, 主要是通过新的关键字var, 有如下面的例子: var i = 5;var s = "Hello";var

C#3.0语言新特性之隐式类型

20.1 隐式类型 在C#3.0中增加了一个变量声明var,这个声明和JavaScript 的var类似,但 也有不同.相同之处是它可以用var来声明任何类型的局部变量:而不同之处在 于它仅仅负责告诉编译器,该变量需要根据初始化表达式来推断变量的类型,而 且只能是局部变量. 20.1.1 隐式类型局部变量的声明与使用 在C# 3.0中,引进了一个新的关键字叫做var.var允许你声明一个新变量, 它的类型是从用来初始化器变量的表达式里隐式的推断出来的,即在声明时,你 不需要给它定义类型,它会根据

C#3.0 新特性之隐式类型化数组

C#3.0这个特性是对隐式类型化本地变量的扩展,有了这个特性,将使我们创建数组的工作变得简单.我们可以直接使用"new[]"关键字来声明数组,后面跟上数组的初始值列表.在这里,我们并没有直接指定数组的类型,数组的类型是由初始化列表推断出来的. class AnonymousTypeArray : AppRunner.AbstractApplication { public override void Run() { var intArray = new[] { 1, 2, 3, 4,

C# 3.0语言新特性(语言规范):1 具有隐式类型的局部变量

变量|规范 原文:<C# Version 3.0 Specification>,Microsoft翻译:lover_P 在一个具有隐式类型的局部变量声明(implicitly typed local variable declaration)中,被声明的局部变量的类型是通过初始化该变量的表达式推断出来的.当使用局部变量声指示符符var来代替类型,并且当前作用域内没有名为var的类型时,这个声明便成为一个具有隐式类型的局部变量声明.例如: var i = 5; var s = "Hel

C# 3.0新特性系列:隐含类型var

一.神奇的var 在C#3.0中增加了一个变量声明var,这个声明和JavaScript 的 var类似,但 也有不同. 1. 相同点,它可以用var来声明任何类型的局部变量. 2. 不同点,它仅仅负责告诉编译器,该变量需要根据初始化表达式来推断变 量的类型,而且只能是局部变量. 二.相同点 它可以声明 var integer = 10; var name = "edisundong"; var numbers = new int[] { 1, 2, 3 }; 三.不同点 var仅仅是

JDK5.0新特性系列---目录

  JDK5.0新特性系列---目录   JDK5.0新特性系列---1.自动装箱和拆箱   JDK5.0新特性系列---2.新的for循环 JDK5.0新特性系列---3.枚举类型 JDK5.0新特性系列---4.静态导入 JDK5.0新特性系列---5.可变长参数Varargs JDK5.0新特性系列---6.格式化输出 JDK5.0新特性系列---7.使用ProcessBuilder执行本地命令 JDK5.0新特性系列---8.泛型编程 JDK5.0新特性系列---9.注释功能Annota

C# 3.0语言新特性(语言规范):6 具有隐式类型的数组

规范|数组 原文:<C# Version 3.0 Specification>,Microsoft翻译:lover_P 数组创建表达式的语法被扩展为支持具有隐式类型的数组创建表达式: array-creation-expression:...new  [  ]  array-initializer 在一个具有隐式类型的数组创建表达式中,数组实例的类型通过数组初始化器中指定的元素来推断.特别地,数组初始化器中的表达式类型形成的集合中,必须恰好有一个类型使得其他类型都可以隐式地转换为该类型,并且该

C# 3.0新特性体验之Lambda表达式

C#2.0介绍了一个新特性--匿名方法,允许开发者在线(inline)声明自己的函数代码而无须使用委托函数(delegate function).C#3.0中提供了一个新特性--Lambda表达式,它提供了完成相同目标的更加简洁的格式.让我们在讨论Lambda表达式以前仔细研究一下匿名方法. 匿名方法 假设你需要创建一个按钮,当点击它的时候更新ListBox里的内容.在C#1.0和1.1里,你要这样做: public MyForm(){ listBox = new ListBox(...); t

Visual C# 3.0新特性概览

在发布Visual Studio 2005和C#2.0之后,微软公司又马不停蹄的展示了人们所期望的C#的下一代版本:C# 3.0.尽管C# 3.0并没有标准化,微软还是在PDC(专业程序员会议)发布了一个预览版本,因此心急的程序员可以看到一些所期望的特性,这也是本文所讨论的主要内容: ·隐式类型本地变量 ·匿名变量 ·扩展方法 ·对象和Collection初始化符 ·Lambda表达式 ·查询表达式 ·表达式树 隐式类型本地变量 C# 3.0引进了一个新的关键字叫做"Var".Var允