小新的技术天地

Make It Works !

博客园 首页 新随笔 联系 订阅 管理

随笔分类 -  C#随笔

摘要:请看代码 ArrayListlist=newArrayList();for(inti=0;i<10;i++){list.Add("a"+i.ToString());}foreach(stringstrinlist)... 阅读全文
posted @ 2006-03-24 14:01 小新0574

摘要:首先我们来看一下前面一篇文章提到了一个RssItem类实现了一个IItem接口,我们发现这个接口是存放在UI文件夹下的,这个接口本身很简单: public interface IItem { string Description { get; } string Title { get; } } 它的具体实现是由UI文件夹下的另两个类来实现的。 我... 阅读全文
posted @ 2005-12-05 18:01 小新0574

摘要:在项目文件中,我们可以看到有一个Rss文件夹,里面有三个文件,保存有三个类,分别是RssChannel,RssFeed,RssItem。 通过查看代码,我们可以了解到,基本数据流程是这样的,首先从网络上的Rss2.0 XML文件得到XML格式的数据,然后使用XML命名空间中的相关类进行解析,提取出我们所需要的数据保存在内存中。 首先我们考察RssFeed类,它的类结构是这样的: 其中有三个... 阅读全文
posted @ 2005-12-03 15:13 小新0574

摘要:如同标题显示的,这只是一篇使用介绍,未涉及源码分析。 如果你英文够好,看这篇文章可能有些多余,因为完全依照Starter kit的文档所写,你可以自己看那个英文文档。对我自己算是看了实验以后的一点记录。 这个Starter Kit是一个屏幕保护程序,跟普通的窗体稍微有些不同,但大家都知道屏保的一些行为,比如鼠标或者键盘有所动作,屏保就会自动关闭。 程序使用的相关技术有: 1.GDI+:... 阅读全文
posted @ 2005-12-02 14:53 小新0574

摘要:把所有的源代码作为一个类型保存在一个单独的文件里是一个好的编程习惯,但有时候一个类型变得过于庞大以至于这样做成为一个不切实际的约束。此外,编程人员经常使用源代码生成器来产生一个应用程序的初始结构,然后再修改产生的代码。不幸的是,当源代码在将来某个时候再次发布时,已存在的修改就要被覆盖了。 Partial types允许把类,结构和接口打破为多个代码碎片存在不同的源代码文件,以便于简化开发和维护。... 阅读全文
posted @ 2005-07-30 15:53 小新0574

摘要:编译:小新0574 特别鸣谢怀沙审校 C#的foreach语句常用来迭代可枚举的集合的元素。为了实现可枚举,一个集合必须有一个无参的GetEnumerator方法,这个方法返回一个枚举器。通常,枚举器比较难实现,但是,用迭代器来简化(枚举器)的任务十分有意义。 一个迭代器是产生一个有序的值序列的一个语句块 。一个迭代器由出现一个或者多个yield语句而区别于一般的... 阅读全文
posted @ 2005-07-12 21:03 小新0574

摘要:usingSystem;delegatedoubleDoCalculate(doublenum);classRocketCalculator{privateDoCalculate[]calculations;privateintcalculationCounter;publicRocketCalculator(){... 阅读全文
posted @ 2004-11-16 20:01 小新0574

摘要:你的程序集A里有一些类型。你有某一个程序集B。你很想让程序集B看到这些类型(A中的类型)。但是却不想让所有人都看到。你该怎么办? 在v1.0和v1.1里,你可以把这些类型标记为public,然后用StrongNameIdentityPermission来修饰。 在Whidbey+里,你可以说程序集B是程序集A的友元。(原文链接有问题,应为http://msdn2.microsoft.com... 阅读全文
posted @ 2004-11-10 13:32 小新0574

摘要:做了一个小测试,按照beautyispower原来的代码: using System;using System.Text;namespace Test{public class TestApp{ public static void Main( string[] args ) { int intTimeUsed=0; int intCount=0; int intMaxCount... 阅读全文
posted @ 2004-10-29 19:14 小新0574

摘要:当编译源代码时。我们的编译器必须处理每一个文本常量字符串,并将其放入元数据中,如果同样的字符串多次出现,都放入元数据中,那么我们生成的文件就会急剧膨胀。为了解决这个问题,许多编译器(包括C#编译器)都在生成模块的元数据中只写入一次这样的字符串。然后将所有引用该字符串的代码改变为引用元数据中的一个字符串。这种将一个多次出现的字符串合并为一个实例的能力可以极大地减少生成模块的大小。实际上这种处理方法C... 阅读全文
posted @ 2004-10-28 10:15 小新0574

摘要:String s1 = “Hello”;String s2 = “Hel”;String s3 = s2 + “lo”;Console.WriteLine(Object.ReferenceEquals(s1,s3));Console.WriteLine(s1.Equals(s3));这里,s2引用的字符串(“Hel”)根一个文本常量字符串(“lo”)被连接在一起。结果构造了一个新的字符串 ,并且被... 阅读全文
posted @ 2004-10-27 12:22 小新0574

摘要:String s = “Hello”;Console.WriteLine(Object.ReferenceEquals(“Hello“,s));你猜显示是true还是false,很多人会猜false,你看,不是有两个“Hello”对象吗?可实际上应该是true,为什么呢?下面解释一下:其实CLR初始化时,他会创建一个内部散列表,键为字符串,值为指向托管堆中字符串对象的引用。刚开始这个表是空的。当J... 阅读全文
posted @ 2004-10-27 10:58 小新0574