- 博客(9)
- 收藏
- 关注
原创 使用VS2005的 ClickOnce 技术实现按需下载组件
默认情况下,首次运行 ClickOnce 应用程序时,会下载该应用程序中包含的所有程序集。但是一些特殊的场景我们可能不希望它这么干,而是希望按照一定规测或者需要用到某个组件的时候再下载。比如我们可能会有下面一些应用场景的需求:1、我开发的这个客户端程序是要收费的。但是免费用户也可以使用部分功能。我在技术实现上把收费用户使用的功能封装到了A.dll 组件了,我希望免费用户根本无法获得A.dl
2007-06-14 15:10:00
5727
1
原创 Orcas Beta1 对多个同名扩展方法的处理逻辑
扩展方法是一个双刃剑,你如果要用扩展方法,就一定得准备碰到别人也用扩展方法,并且万一出现你们都对同一个类进行扩展函数名,参数一样的扩展时候, 会出的各种问题. 说明:以下测试是基于Orcas Beta1环境的测试,VS2008 正式版发布后,也许会发生变化。 如果你对扩展方法不是很熟悉,建议先看我之前的两篇博客:C#3.0 中的扩展方法 (Extension Methods
2007-06-12 18:39:00
4393
1
原创 C#3.0 中 DLINQ 从数据库获得数据集,XLINQ从XML文件获得数据集的方法
DLINQ和XLINQ的具体查询,更新等操作不是本文讨论重点,本文重点解决如何获取需要查询的数据集。 DLINQ 如何链接到数据库?DLINQ可以访问DataSet,这种情况我们在本文就不考虑了,本文考虑的是直接用DLINQ访问数据库,我们如果用VS Orcas中的LINQ到SQL的新ORM设计器,VS替我们产生了一些代码,这种情况也不是本文考虑的范围。本文我们要考虑的事情
2007-06-12 13:35:00
2401
原创 C# 3.0 的Lambda表达式(Lambda Expressions)
Lambda 表达式(拉姆达表达式) 和 匿名方法 其实是一件事情。唯一的不同是:他们语法表现形式不同。Lambda 表达式是在语法方面的更进一步的进化。在本质上,他们是一件事情。他们的作用都是:产生方法。即:内联方法。引用自 C#首席架构师Anders Hejlsberg 的原话:http://www.ondotnet.com/pub/a/dotnet/2005/10/31/interv
2007-06-12 10:15:00
6465
原创 C#3.0 LINQ 查询语法
首先来看一个很简单的LINQ查询例子,查询一个int 数组中小于5的数字,并按照大小顺序排列:class Program{ static void Main(string[] args) { int[] arr = new int[] { 8, 5, 89, 3, 56, 4, 1, 58 }; var m = from n in arr wher
2007-06-07 17:18:00
3347
原创 C#3.0 中对象初始化器(Object Initializers)和集合初始化器(Collection Initializers)
C# 3.0 中对象初始化器(Object Initializers) 和 集合初始化器(Collection Initializers) ,就是简化我们的代码,让本来几行才能写完的代码一行写完。这样在LINQ的使用中,我们才不会把一个LINQ表达式写的巨复杂无比。 由于我看到几篇讲 对象初始化器(Object Initializers)和集合初始化器(Collection Init
2007-06-06 16:34:00
2396
原创 C#3.0 中使用扩展方法来扩展接口
有关扩展方法的一些知识点请参看我的前篇博客:C#3.0 中的扩展方法 (Extension Methods)前篇博客中我重点介绍了两个特殊场景:1、扩展方法跟原来类的方法重名时候的处理逻辑2、扩展方法的嵌套现在我们来看扩展方法使用的第三个场景:使用扩展方法来扩展接口 应用场景举例:我们有时候会发现最初定义的一个接口,在现在环境下,这个接口需要再增加一个函数。有了扩展方法
2007-06-06 14:31:00
7215
1
原创 C#3.0 中的扩展方法 (Extension Methods)
今天早上在MSDN站点看到这样一篇文章: C# 3.0 LINQ 的演变及其对 C# 设计的影响 。 从这篇文章我们就可以明显的看到,C# 3.0 所新增的这些特性,可以认为都是为了LINQ 的发展,为了LINQ更易用,所创建的一些新特性,当然这些新特性也可以被非LINQ相关功能所使用。LINQ的发展,带动了C#3.0 这一系列新特性的产生。 回来说我们的话题,扩展方法,首先看一个最简单的
2007-06-06 11:26:00
4035
原创 C# 3.0 的自动属性(Automatic Properties)
使用自动属性后,你可以不用手工声明一个私有成员变量以及编写get/set逻辑,取而代之的是,编译器会自动为你生成一个私有变量和默认的get/set 操作。系统为你产生的私有变量在IDE中,你是看不到的,如下图:当然如果你希望属性中有些赋值或者取值逻辑校验,自动属性可是不适合你的。 上面的代码我们编译后,再用 Reflector 反编译后,我们可以看到上述代码中的属性变成了如下代码:
2007-06-05 13:34:00
2641
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人