<?xml version="1.0" encoding="gb2312"?>

<!-- RSS generated by oioj.net on 4/16/2004 ; 感谢LeXRus提供 RSS 2.0 文档; 此文件可自由使用，但请保留此行信息 --> 
<!-- Source download URL: http://blogger.org.cn/blog/rss2.asp       -->
<rss version="2.0">

<channel>
<title>diy930的博客</title>
<link>http://blogger.org.cn/blog/blog.asp?name=diy930</link>
<description>diy930的博客</description>
<copyright>blogger.org.cn</copyright>
<generator>W3CHINA Blog</generator>
<webMaster>webmaster@blogger.org.cn</webMaster>
<item>
<title><![CDATA[“五一”节后，工作天！！！]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=diy930&amp;id=5528</link>
<author>diy930</author>
<pubDate>2005/5/5 16:00:46</pubDate>
<description><![CDATA[<P><A>状态还没调整过来，</A>过节几天。天天在家看电影看书。没怎么出去。。。</P>
<P>今天一来上班，才发现时间过得很快，过节这几天，我还没有真正的看完一本书。</P>
<P>&nbsp;</P>]]></description>
</item><item>
<title><![CDATA[在当今的软件业领域里，自由和开放已经深入人心，这一理念的代表者Linux、Apache等也正在以前所未有的速度发展]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=diy930&amp;id=5314</link>
<author>diy930</author>
<pubDate>2005/4/26 13:49:07</pubDate>
<description><![CDATA[转载自: <A href="http://www.jz-vip.org/show.aspx?id=41&amp;cid=17" target=_blank>http://www.jz-vip.org/show.aspx?id=41&amp;cid=17</A><BR><BR>在当今的软件业领域里，自由和开放已经深入人心，这一理念的代表者Linux、Apache等也正在以前所未有的速度发展<BR>和壮大。各大软件商唯恐搭不上这趟车，从而失去发展的大好良机，故纷纷对“自由和开放”趋之若鹜。而微软，这一软<BR>件业的巨人，对此却并没有足够的关注。这情有可言，因为不管是在服务器操作系统、Web浏览器、程序设计语言还是在其<BR>它各个不计其数的领域中，微软已经证明了其并不需要对“开放”投怀送抱。不过，令人出乎意料的是，微软在C#上的举<BR>措，居然和自己的这一准则相去甚远。 
<P></P>
<P>精品中的精品</P>
<P>微软开发的C#（C Sharp）语言，不仅有实时的编译器，丰富的数据类型，还有一个被称为CLI（Common Language <BR>Infrastructure）的服务。C#和CLI，都被打包在了微软六月份发布的.NET软件开发员工具箱Beta 2中，这一工具箱可用于<BR>创建文本和图形应用程序、服务器端应用程序、组件和Web服务。这一功能已经被提交到了ECMA（欧洲计算机制造商协会）<BR>作为了标准，这将可保证任何人都有权使用C#和CLI来进行开发。</P>
<P>这次，傲慢的微软居然还好事做到底。它承诺C#将可以像Java一样便携、通用，并且用户无需受许可期限的限制。因<BR>此，商业用户将可选择使用一个新的、功能强大并且具有极大吸引力的程序设计语言。</P>
<P>C#可以说是微软在不断的发展和实践的过程中，锤炼出来的一个精品。它集C++、Java、JavaScript(现在的<BR>ECMAScript)和VB的精华于一身，因集众家之长，使其不仅安全，而且还非常的易于使用。当然，仅仅有语言还不足于创建<BR>应用程序，以之相伴的CLI确保了所有的C#程序、无论是从输出格式，还是网络I/O，都有一整套标准的类和数据类型。</P>
<P>美好前景</P>
<P>和以前的VB一样，C#也承认并不是所有的程序都可以由初级程序来完成的，因为在一些大的应用程序中，复杂和冗长<BR>的编码过程将不可避免。我们知道，C++因其复杂、麻烦而著称；VB则主要是面对初级和中级程序员的。</P>
<P>C++程序员羡慕VB，并不是因为其安全性，而是因为微软直接把一个易于使用的COM（Component Object Model）整合<BR>到了VB中。事实上，为了简化C++程序员对COM的访问，微软也进行了一些尝试，但是最终它还是没有像在自己的专有权软<BR>件VB中一样，在标准的C++中加入免费的关键字。</P>
<P>从常理来讲，C++的开发者为了追求VB的易用性，似乎很有可能会转而使用C#。事实上，对于大多数程序员而言，它们<BR>不会选择使用一个它们认为比较差的语言来进行程序设计。所以，为了能够继续使用自己津津乐道的C++所特有的功能，<BR>C++的程序员很有可能会学习使用C#。最后，在大部分Windows的开发中（包括商业应用程序的开发），C#将代替C++。因<BR>为，和微软加入到C++中的所有Windows和COM层相比较，C#更加的简洁、干净。</P>
<P>为了使VB7（包含在Visual Studio.NET中）能和CLI兼容，微软已经把一些使VB非常易于使用的功能舍弃。所以以前旧<BR>的VB应用程序，将不能通过VB7中更加严谨的编码规则。</P>
<P>微软的CLI是其.NET一个关键的组成部分。它可以把数据类型标准化，以使得所有和CLI兼容的软件，无论其是用什么<BR>语言编写的，也不论是在什么平台上编写的，都可以共享数据。现在，我们所熟知的相对来说和CLI最接近的是JRE（Java <BR>Runtime Environment）和它标准的类，不过二者间的差别还是非常的大：CLI是用来支持所有编程语言的。所以在软件项<BR>目的开发中，项目组中的程序员可以选择一个自己最喜欢的语言来编程。这对于开发那些项目组成员处在不同的地理位置<BR>的分布式开发项目来说，将带来前所未有的便利。</P>
<P>CLI使得代码的重用非常的简单，如果一个应用程序需要某个代码模块，那么只需将其拷贝到应用程序的主目录即可，<BR>而无需注册。这是因为CLI的设计就使其可以运行在任何主机和任何操作系统上。</P>
<P>C#和CLI的确有很多受人欢迎的地方，不过也许促使人们去使用它的，不是因为微软的宣传，而是ECMA（欧洲计算机制<BR>造商协会）所做的努力。现在，C#或者CLI已不属微软所有，所以微软可以推出自己的开发工具，它的公司也可以推出自己<BR>的开发工具。这其中也许有的就很有可能成为微软的竞争对手。当然，居于自己的发明来促进公共标准的发展，这并不意<BR>味着微软就已经认可了源代码开放，事实上，微软是另有所图。不管怎么说，C#和CLI都是在正确的方向上走出了非常有意<BR>义的一步。C#语言和与之相伴的CLI对于.NET和未来Windows平台下的软件开发是至关重要的。</P>
<P>由于具有.NET的便携性和代码的安全性，并且考虑到可以把一些关键的C++项目移植到C#上，所以C#代替C和C++将只是<BR>时间上的问题。而对于长期从事VB开发的人来说，很有可能因为无法忍受CLI更加严格的编程规则，因此转而使用比VB优秀<BR>得多的C#。，</P>
<P>微软意欲何为</P>
<P>很显然，微软的这次反常表现让很多人对其C#语言和CLI持怀疑态度。毕竟，这是一个很有价值的知识产权，而微软却<BR>放弃了，这似乎不太附合这个软件业霸主的一贯风格。难怪各公司在是否使用C#和CLI标准时举棋不定，疑虑重重。</P>
<P>不过，有一点可以肯定，微软的这一举措将使来自各方批评有所减弱。此外，一些在源代码开放阵营中反微软的人，<BR>很有可能会编写自己使用的C#编译器、CLI工具以及其它的应用程序，而且他们所写的所有东西都将可以在Windows下运<BR>行。</P>
<P>微软是一个精明无比的“商人”，如果我们把微软比作一个服装商，那么它为了能买出自己的整套西服，就会免费把<BR>领带送给消费者（这种情形，我曾在王府井碰到过）。对于现在的微软来说，C#和CLI是领带，而Visual Studio.NET是西<BR>服。微软断定所有接受C#的人，最终将很有可能选择使用其功能强大的Visual Studio IDE（整合开发环境）。另外，微软<BR>这一举措，无疑是把Sun公司推到源代码开放软件的对立面。我们知道，Sun公司的Solaris在互联网领域，占有最大的市场<BR>份额，而相对来说，微软的NT系统，似乎不尽如人意。微软这一招可谓是一箭双雕。</P>
<P>实事求是的说，微软现在力推的这一套“西服”还是非常的优秀。现在ECMA委员会正在测试C#和CLI，以产生一个新的<BR>ECMAScript标准。所以，不管微软居心如何，C#和CLI的前景还是非常诱人的。</P>]]></description>
</item><item>
<title><![CDATA[目录]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=diy930&amp;id=5313</link>
<author>diy930</author>
<pubDate>2005/4/26 13:37:46</pubDate>
<description><![CDATA[转载自: <A href="http://www.jz-vip.org/show.aspx?id=54&amp;cid=17" target=_blank>http://www.jz-vip.org/show.aspx?id=54&amp;cid=17</A><BR><BR>
<DIV class=content id=BodyLabel style="PADDING-RIGHT: 10px; DISPLAY: block; PADDING-LEFT: 10px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px">目录 <BR>&nbsp;&nbsp;类与结构的实例比较&nbsp; <BR>&nbsp;&nbsp;&nbsp;类与结构的差别&nbsp; <BR>&nbsp;&nbsp;&nbsp;如何选择结构还是类&nbsp; <BR>&nbsp; <BR>一．类与结构的示例比较：&nbsp; <BR>结构示例：&nbsp; <BR>public&nbsp;struct&nbsp;Person&nbsp; <BR>{&nbsp; <BR>&nbsp;&nbsp;&nbsp;string&nbsp;Name;&nbsp; <BR>&nbsp;&nbsp;&nbsp;int&nbsp;&nbsp;height;&nbsp; <BR>&nbsp;&nbsp;&nbsp;int&nbsp;&nbsp;weight&nbsp; <BR>public&nbsp;bool&nbsp;overWeight()&nbsp; <BR>{&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;//implement&nbsp;something&nbsp; <BR>}&nbsp; <BR>}&nbsp; <BR>&nbsp;&nbsp;类示例：&nbsp; <BR>&nbsp;&nbsp;&nbsp;public&nbsp;class&nbsp;TestTime&nbsp; <BR>&nbsp;&nbsp;&nbsp;{&nbsp; <BR>&nbsp;int&nbsp;hours;&nbsp; <BR>&nbsp;int&nbsp;minutes;&nbsp; <BR>&nbsp;int&nbsp;seconds;&nbsp; <BR>&nbsp; <BR>public&nbsp;void&nbsp;passtime()&nbsp; <BR>{&nbsp; <BR>&nbsp;&nbsp;//implementation&nbsp;of&nbsp;behavior&nbsp; <BR>}&nbsp; <BR>&nbsp;&nbsp;&nbsp;}&nbsp; <BR>&nbsp;调用过程：&nbsp; <BR>&nbsp;&nbsp;public&nbsp;class&nbsp;Test&nbsp; <BR>&nbsp;&nbsp;{&nbsp; <BR>public&nbsp;static&nbsp;ovid&nbsp;Main&nbsp; <BR>{&nbsp; <BR>&nbsp;&nbsp;&nbsp;Person&nbsp;Myperson=new&nbsp;Person&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//声明结构&nbsp; <BR>&nbsp;&nbsp;&nbsp;TestTime&nbsp;Mytime=New&nbsp;TestTime&nbsp;&nbsp;&nbsp;&nbsp;//声明类&nbsp; <BR>}&nbsp; <BR>}&nbsp; <BR>从上面的例子中我们可以看到，类的声明和结构的声明非常类似，只是限定符后面是&nbsp;struct&nbsp;还是&nbsp;class&nbsp;的区别，而且使用时，定义新的结构和定义新的类的方法也非常类似。那么类和结构的具体区别是什么呢？&nbsp; <BR>&nbsp; <BR>二&nbsp;.类与结构的差别&nbsp; <BR>1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;值类型与引用类型&nbsp; <BR>结构是值类型：值类型在堆栈上分配地址，所有的基类型都是结构类型，例如：int&nbsp;对应System.int32&nbsp;结构，string&nbsp;对应&nbsp;system.string&nbsp;结构&nbsp;，通过使用结构可以创建更多的值类型&nbsp; <BR>类是引用类型：引用类型在堆上分配地址&nbsp; <BR>堆栈的执行效率要比堆的执行效率高，可是堆栈的资源有限，不适合处理大的逻辑复杂的对象。所以结构处理作为基类型对待的小对象，而类处理某个商业逻辑&nbsp; <BR>因为结构是值类型所以结构之间的赋值可以创建新的结构，而类是引用类型，类之间的赋值只是复制引用&nbsp; <BR>注：&nbsp; <BR>1.虽然结构与类的类型不一样，可是他们的基类型都是对象（object）,c#中所有类型的基类型都是object&nbsp; <BR>2.虽然结构的初始化也使用了New&nbsp;操作符可是结构对象依然分配在堆栈上而不是堆上，如果不使用“新建”(new)，那么在初始化所有字段之前，字段将保持未赋值状态，且对象不可用&nbsp; <BR>&nbsp;&nbsp;2．继承性&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;结构：不能从另外一个结构或者类继承，本身也不能被继承，虽然结构没有明确的用sealed声明，可是结构是隐式的sealed&nbsp;.&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;类：完全可扩展的，除非显示的声明sealed&nbsp;否则类可以继承其他类和接口，自身也能被继承&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;注：虽然结构不能被继承&nbsp;可是结构能够继承接口，方法和类继承接口一样&nbsp; <BR>例如:结构实现接口&nbsp; <BR>&nbsp;&nbsp;interface&nbsp;IImage <BR><BR>{ <BR>&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;Paint(); <BR>} <BR>&nbsp; <BR>struct&nbsp;Picture&nbsp;:&nbsp;IImage <BR>{ <BR>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;Paint() <BR>&nbsp;&nbsp;&nbsp;&nbsp;{ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;painting&nbsp;code&nbsp;goes&nbsp;here <BR>&nbsp;&nbsp;&nbsp;&nbsp;} <BR>&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;int&nbsp;x,&nbsp;y,&nbsp;z;&nbsp;&nbsp;//&nbsp;other&nbsp;struct&nbsp;members <BR>} <BR>&nbsp; <BR>&nbsp;&nbsp;3．内部结构：&nbsp; <BR>结构：&nbsp; <BR>没有默认的构造函数，但是可以添加构造函数&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;没有析构函数&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;没有&nbsp;abstract&nbsp;和&nbsp;sealed(因为不能继承)&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;不能有protected&nbsp;修饰符&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;可以不使用new&nbsp;初始化&nbsp; <BR>在结构中初始化实例字段是错误的&nbsp; <BR>类：&nbsp; <BR>&nbsp;有默认的构造函数&nbsp; <BR>&nbsp;有析构函数&nbsp; <BR>&nbsp;可以使用&nbsp;abstract&nbsp;和&nbsp;sealed&nbsp; <BR>有protected&nbsp;修饰符&nbsp; <BR>必须使用new&nbsp;初始化&nbsp; <BR>&nbsp; <BR>三．如何选择结构还是类&nbsp; <BR>&nbsp;&nbsp;&nbsp;讨论了结构与类的相同之处和差别之后，下面讨论如何选择使用结构还是类：&nbsp; <BR>1．&nbsp;&nbsp;堆栈的空间有限，对于大量的逻辑的对象，创建类要比创建结构好一些&nbsp; <BR>2．&nbsp;&nbsp;&nbsp;结构表示如点、矩形和颜色这样的轻量对象，例如，如果声明一个含有&nbsp;1000&nbsp;个点对象的数组，则将为引用每个对象分配附加的内存。在此情况下，结构的成本较低。&nbsp; <BR>3．&nbsp;&nbsp;在表现抽象和多级别的对象层次时，类是最好的选择 <BR>4．&nbsp;&nbsp;大多数情况下该类型只是一些数据时，结构时最佳的选择&nbsp; </DIV>]]></description>
</item><item>
<title><![CDATA[使用CSS心得]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=diy930&amp;id=5311</link>
<author>diy930</author>
<pubDate>2005/4/26 13:10:10</pubDate>
<description><![CDATA[<P><A>发现自已</A>已经离不开CSS了，做的网站，找不到表格。</P>]]></description>
</item>
</channel>
</rss>