体验隐式类型本地变量
在一个隐式类型本地变量的声明中,本地变量的类型是从等号右边的本地声明语句的初始化表达式中推断出来的。举例来说,编译器推断如下的变量声明:Dim Population = 31719Dim Name = "Belize"Dim Area = 1.9Dim C...
C# 3.0新特性初步研究 Part1:使用隐含类型的本地变量
C# 3.0给我们带来了很多新特性,其中增加了很多“动态”内容,让我们使用起来更加Sharp!我在这里简单的介绍一下C# 3.0规范中的一些“新鲜”内容,小弟才疏学浅,望大家海涵!Part1:使用隐含类型的本地变量...
隐式类型本地变量概览
C# 3.0引进了一个新的关键字叫做"Var"。Var允许你声明一个新变量,它的类型是从用来初始化符变量的表达式里隐式的推断出来的。也就是说,如下的表达式是有效的格式:var i = 1; 这一行使用了1来初始化符变量i...
隐式类型化本地变量示例
这个特性非常简单,有些JavaScript的影子,我们可以统一使用使用"var"关键字来声明局部变量,而不再需要指明变量的确切类型了,变量的确切类型可通过声明变量时的初始值推断出来。这样一来,可以大大简化我们声明局...
C#3.0之隐式类型化的本地变量
In an implicitly typed local variable declaration, the type of the local variable being declared is inferred from the expression used to initialize the variable. When a local variable declaration spec...
C# 3.0新特性之扩展方法
C#3.0扩展方法是给现有类型添加一个方法。现在类型既可是基本数据类型(如int,String等),也可以是自己定义的类。//Demo--1 //扩展基本类型 namespace TestExtensionMethods { // 必须建一个静态类,用来包含要...
C# 3.0新特性初步研究 Part2:使用扩展方法
扩展方法(Extension Method)可以为已有的类型添加新的方法定义和实现,比如int类型目前没有一个名叫xxxyyy()的方法,那么通过使用扩展方法,我们可以为int类型添加一个xxxyyy()方法。这个有点类似于用来扩展系统功...
生成以及使用扩展库
一切有用的东西都可以封装到库里以供复用,这是现代编程的王道。为了演示这个过程,重新建立一个.NET Library工程,然后将代码转移进去,看起来应该如下所示:using System;using System.Collections.Generic;usi...
静态地调用扩展方法
回想一下,所有扩展方法的第一个参数都被添加了一个this关键字,如果我们想一想在这背后发生了些什么(可以使用ildasm.exe或者Lutz Roeder's Reflector),我们将看到编译器简单地调用了normal静态方法,将调用这些...
从实例级别调用扩展方法
现在有了这两个扩展方法,我们来看一看任意一个对象(当然,必须是在.NET基类库中的)是怎么执行DisplayDefiningAssembly()的,而一个System.Int32类型是如何执行ReverseDigits()和Foo()的。 static vo...
定义扩展方法
下面是一个叫做MyExtensions的类,定义了两个扩展方法。第一个方法使用了System.Reflection命名空间,可以使得.NET基类库的所有对象有一个DisplayDefiningAssembly(),第二个方法是个翻转int型数据的函数,比...
C# 3.0中新匿名类型实例学习
实例学习 你需要安装Visual Studio 2005和.NET 2.0,然后你可以从这里下载到LINQ技术的预览版本。 如果你安装了Visual Studio 2005,你可以看到在Visual C#下多了3个和LINQ预览有关的工程模板:LINQ Conso...
C# 3.0中新匿名类型特性初体验
在去年PDC2005上,在发布C#2.0 (C# Whidbey)的同时,微软也同时展示了它们在C# 3.0上的一些计划。在提到一系列新的语言特性如语言集成查询(LINQ)等,Redmond同时也介绍了一个新的特性--匿名类型。本文详细介绍了匿名...
深入理解C# 3.0的五项主要改进 (匿名类型)
C# 2.0引入了匿名方法,C# 3.0推出匿名类型。匿名类型与匿名方法类似,它们都是以嵌入方式建立,并没有正式的名称。在建立一个匿名类型,您必须组合上述对象初始化器和隐型局部变量两个概念。下面是一个匿名类型的例...
[C# 3.0] 传递匿名类型对象的问题
匿名对象一般只在同一个Scope中定义和使用, 这样才能让VS有Intellisence:如果是通过函数传递过来的匿名类型对象, 就只能用object来传了..当然也就没了Intellisense:但... 从Meta-Me上面看到一个Trick..虽然不...
C# 3.0语言新特性(语言规范):匿名类型
原文:《C# Version 3.0 Specification》,Microsoft翻译:lover_P C# 3.0允许将new运算符用于一个匿名对象初始化器来创建一个匿名类型的对象。primary-no-array-creation-expression:...anonymous-object-creation...
C# 3.0新语言特性和改进:匿名类型
匿名类型(Anonymous Types)匿名类型允许定义行内类型,无须显式定义类型。常和var配合使用来声明匿名类型。var p1 = new { Id = 1, Name = "YJingLee", Age = 22 };//属性也不需要申明var p2 = new { Id = 2, Name...
C# 3.0新特性初步研究 Part5:匿名类型
匿名类型(Anonymouse Type)——这年头什么多系都匿名了 : )在初始化的时候根据初始化列表自动产生类型的一种机制。典型的代码:1class Program2 {3  ...
C#3.0规范(四)Lambda 表达式
C# 2.0 introduces anonymous methods, which allow code blocks to be written “in-line” where delegate values are expected. While anonymous methods provide much of the expressive power of functional pr...
C# 3.0新特性初步研究 Part3:使用拉姆达表达式
拉姆达表达式(Lambda Expression)可以算是一种匿名方法的实现吧。在C# 2.0中引入了匿名方法的概念,我们可以写下如下代码: 1class Program 2{ 3static void TestLambdaExpression() 4{ ...