博文

.NET 窗体间传送数据方法谈 —— 迟来的补遗(2007-05-07 03:16:00)

摘要:其实这篇文章早就该写出来了。毕竟有关WinForm窗体间传送数据的帖子在.NET相关版面中相当有热度。 本人当初考虑起笔的时候,感觉这个东西不是三言两语就能搞定的,毕竟方法甚多,要说清楚也不那么容易。其次呢,我这人并不勤于笔墨,更新最快的live space频率最高的时候也就一星期一篇而已。 现在仔细思量了一下,还是早点出的好。于是打算结合之前遇到的问题,稍微将解决思路一带。复杂的技术就不再细说,重点提供各位几种实用易上手的方法。 注: 本文中提到的方法可能会不定期补充,毕竟我不能保证一次性总结那么全面(更何况我一直不擅长总结~~,大家发现什么其它方法或者俺没说清楚的地方给俺说声)。 以下所有方法均基于两个普通窗体类Form1、Form2(实例对应f1、f2);如果没有专门说明,这两个类均位于同一程序集中。 传送的数据均以32位整型为例。 如果没有单独说明,就按照双向传送数据对待。 本文中提到的数据传送方法并不仅单单适用于窗体间数据传送,很多方法同样适用于更为宽泛的类数据传送。 方法一:静态变量法 优点:发挥静态变量的优势,很少代码就能搞定。 缺点:静态变量也容易导致多个窗体共同访问时出现混乱,并且在这两个窗体类的多个实例之间传递的时候不具有相互独立性。 Form1或者同一程序集的其它类中声明一个静态中间变量,如     class Form1 : Form{
        ...
        public static int internalVar;    // 也可以是internal static
        ...
    }  然后,Form1以及Form2的实例自然可以方便地访问Form1.internalVar这个中间变量了。 ......

阅读全文(3934) | 评论:1

C# 3.0 特性预览(2006-05-20 23:57:00)

摘要:    声明:本文主要是根据微软《C# 3.0 Specification》文档翻译而成(本文内容并非完整按照该文档进行编排),并对msdn相关文档中的资料进行整理而成。若有翻译不妥之处,恳请指正。
    
    阅读本文前,需要了解:
    1、C# 3.0代号“Orcas”,是基于C# 2.0的扩展。提供了多种具有更高层次功能的类库。这些扩展允许构造组合(compositioanl)API来实现具有同关系型数据库及XML等领域相等效能的表达效力。
    2、LINQ项目可以看作是一个未来技术的演示项目,可以从MSDN网站上下载预览包。LINQ项目旨在扩展C#及VB.NET在语法上对语言集成查询的支持。借助这些特性,我们可以用类似SQL或者XQuery之类的语句进行代码编写。LINQ项目的内容不单独介绍,因为它对于C#中的特性主要就是C# 3.0中的语言集成查询特性。
    3、写这篇文章的目的很简单,就是希望有兴趣的朋友可以开始3.0的探索了,这样当3.0的编译器出台时不至于再赶时间学习。并不建议初学者花费精力来掌握本文内容,了解一下发展概况即可,否则很容易导致两头都搞不好。况且这并不是最基础的内容。
    4、本文内容仅基于预览版本内容(PDC 2005 Technology Preview),并非最终版本。C# 3.0完成后,有可能会增加或者更改某些特性。预览版本可能还不能支持C# 3.0中的某些内容,对于这些内容,将简单介绍。
    5、本文旨在将新的特性展现出来,针对每个特性并不进行深入的探讨,读者如果有兴趣可以自行参阅相关资料。
    
    那么,我们就开始吧。
  &nb......

阅读全文(3864) | 评论:1

C# 2.0 特性介绍(2006-04-23 01:35:00)

摘要:注意:C# 2.0大纲根据网络资料收集整理而成,并在各个部分加以个人的理解以及运用。本文中的内容并不能够达到完整的层次,但是覆盖最基本的要求,并且往往可以通过本文的内容举一反三使得自己提升到更高的层次。如果有不足之处,恳请指点。     C# 2.0需要支持.NET Framework 2.0的编译器,对于MS来说就是VS 2005,开源社区的SharpDevelop2也是不错的选择,但是Borland最新的C# Builder 2006暂不支持.NET 2.0。在这里列举这些特性的目的就是让各位已经开始使用VS 2005等开发工具的朋友可以在短时间熟悉新语言环境,运用新的语言特性,高效率完成任务。
   
    C# 2.0引入了很多语言扩展,最重要的就是泛型(Generics)、匿名方法(Anonymous Methods)、迭代器(Iterators)和不完全类型(Partial Types)。
    1. 泛型允许类、结构、接口、委托和方法通过它们所存贮和操作的数据的类型来参数化。泛型是很有用的,因为它提供了更为强大的编译期间类型检查,需要更少的数据类型之间的显式转换,并且减少了对装箱操作的需要和运行时的类型检查。
    2. 匿名方法允许在需要委托值时能够以“内联(in-line)”的方式书写代码块。匿名方法与Lisp语言中的拉姆达函数(lambda functions)类似。
    3. 迭代器是能够增量地计算和产生一系列值得方法。迭代器使得一个类能够很容易地解释foreach语句将如何迭代他的每一个元素。
    4. 不完全类型允许类、结构和接口被分成多个小块儿并存贮在不同的源文件中使其容易开发和维护。另外,不完全类型可以分离机器产生的代码和用户书写的部分,这使得用工具来加强产生的代码变得容易。
   
    不过呢,虽然具有这些改进(有的需要从.NET内部进行革新),但是在源代码级别将保持高度的兼容性,所以完全可以放心遗......

阅读全文(5167) | 评论:1