<?xml version="1.0" encoding="gb2312"?>
<rss version="2.0">
<channel>
<title><![CDATA[自由国度]]></title>
        <image>
        <title>http://hi.baidu.com</title>
        <link>http://hi.baidu.com</link>
        <url>http://img.baidu.com/img/logo-hi.gif</url>
        </image>
<description><![CDATA[]]></description>
<link>http://hi.baidu.com/gfws</link>
<language>zh-cn</language>
<generator>www.baidu.com</generator>
<ttl>5</ttl>


<item>
        <title><![CDATA[humor2]]></title>
        <link><![CDATA[http://hi.baidu.com/gfws/blog/item/9fcdebf822645708d9f9fddc.html]]></link>
        <description><![CDATA[
		
		<p>1.睡前的祷告 <br>
　　 <br>
　　Julie was saying her bedtime prayers. &quot;Please God,&quot; she said, &quot;Make Naples the capital of Italy. Make Naples the capital of Italy.&quot; <br>
　　 <br>
　　Her mother interrupted and said, &quot;Julie, why do you want God to make Naples the capital of Italy?&quot; <br>
　　 <br>
　　And Julie replied, &quot;Because that's what I put in my geography exam!&quot;</p>
<p>2.　大脑袋 <br>
　　 <br>
　　&quot;All the kids make fun of me,&quot; the boy cried to his mother. &quot;They say I have a big head.&quot; <br>
　　 <br>
　　&quot;Don't listen to them,&quot; his mother consoled. &quot;You have a beautiful head. Now stop crying and go to the store for ten pounds of potatoes.&quot; <br>
　　 <br>
　　&quot;Where's the shopping bag?&quot; <br>
　　 <br>
　　&quot;I haven't got one, use you hat.&quot;</p>
<p>3.我可以回家了 <br>
　　 <br>
　　One day after school the teacher said to his students, &quot;Tomorrow morning, if any one of you can answer my first question, I will permit him or her to go home earlier.&quot; <br>
　　 <br>
　　The next day, when the teacher came into the classroom, he found the blackboard daubed（乱画）. He was very angry and asked, &quot;Who did it? Please stand up!&quot; <br>
　　 <br>
　　&quot;It's me,&quot; said Bob, &quot;Now, I can go home. Good-bye, Sir.&quot;</p>
<p>4.你知道我是干什么的吗 <br>
　　 <br>
　　One night a hotel caught fire, and the people who were staying in it ran out in their night clothes. <br>
　　 <br>
　　Two men stood outside and looked at the fire. <br>
　　 <br>
　　&ldquo;Before I came out,&rdquo; said one,&ldquo;I ran into some of the rooms and found a lot of money.People don't think of money when they're afraid. When anyone leaves paper money in a fire, the fire burns it. So I took all the bills that I could find. No one will be poorer because I took them.&rdquo; <br>
　　 <br>
　　&ldquo;You don't know my work,&rdquo; said the other. <br>
　　 <br>
　　&ldquo;What is your work？&rdquo; <br>
　　 <br>
　　&ldquo;I'm a policeman. <br>
　　 <br>
　　&ldquo;Oh！&rdquo; cried the first man. He thought quickly and said,&ldquo;And do you know my work？&rdquo;&ldquo;No,&rdquo;said the policeman. <br>
　　 <br>
　　&ldquo;I'm a writer. I'm always telling stories about things that never happened.&rdquo;</p>
<p>5.那你当时在干什么 <br>
　　 <br>
　　A policeman comes upon a traffic accident. The driver and passenger had been killed. As the policeman look over the crashed car, a small monkey came out and hopped around the crashed car. <br>
　　 <br>
　　The policeman looked down at the money and said, &ldquo;I wish you could talk.&rdquo; <br>
　　 <br>
　　The monkey shook his head up and down. <br>
　　 <br>
　　&ldquo;You can understand what I say? &rdquo; asked the surprised policeman. <br>
　　 <br>
　　Again, the monkey shook his head up and down. <br>
　　 <br>
　　&ldquo;Well, did you see the accident? &rdquo; <br>
　　 <br>
　　&ldquo;Yes,&rdquo; motioned the monkey. <br>
　　 <br>
　　&ldquo;What happened? &rdquo; <br>
　　 <br>
　　The monkey pretended to have a can in his hand and turned it up by his mouth. <br>
　　 <br>
　　&ldquo;They drank? &rdquo; Asked the policeman. <br>
　　 <br>
　　&ldquo;Yes.&rdquo; <br>
　　 <br>
　　&ldquo;What else?&rdquo; <br>
　　 <br>
　　The monkey pinches his two fingers together and holds them by his mouth. <br>
　　 <br>
　　&ldquo;They were smoking? &rdquo; <br>
　　 <br>
　　&ldquo;Yes.&rdquo; <br>
　　 <br>
　　&ldquo;Now, just wait a minute. You say that they were smoking and doing drugs just before the accident? &rdquo; <br>
　　 <br>
　　&ldquo;Yes.&rdquo; <br>
　　 <br>
　　&ldquo;What did you do all the time? &rdquo; <br>
　　 <br>
　　&ldquo;Driving,&rdquo; motioned the monkey.</p>
<p>6.我老婆的照片 <br>
　　 <br>
　　A businessman enters a tavern（酒馆）, sits down at bar,orders a double martini on the rocks. <br>
　　 <br>
　　After he finishes the drink, he peeks inside his shirt pocket, then orders the bartender to prepare another double martini. <br>
　　 <br>
　　After he finishes that, he again peeks inside his shirt pocket before orders the bartender to bring another double martini. <br>
　　 <br>
　　The bartender says, &quot;Look, buddy, I'll bring ya' martinis all night long - but you gotta tell me why you look inside your shirt pocket before you order refill.&quot; <br>
　　 <br>
　　The customer replies, &quot;I'm peeking at the photo of my wife. When she starts to look good, I know it's time to go home.&quot;</p> 
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/gfws/blog/category/%D3%A2%D3%EF%D0%C4%B5%C3">英语心得</a>&nbsp;<a href="http://hi.baidu.com/gfws/blog/item/9fcdebf822645708d9f9fddc.html#comment">查看评论</a>]]></description>
        <pubDate>2008年11月01日 星期六  02:34 P.M.</pubDate>
        <category><![CDATA[英语心得]]></category>
        <author><![CDATA[苍狼嗥月]]></author>
		<guid>http://hi.baidu.com/gfws/blog/item/9fcdebf822645708d9f9fddc.html</guid>
</item>

<item>
        <title><![CDATA[英文humor]]></title>
        <link><![CDATA[http://hi.baidu.com/gfws/blog/item/b1884c087e781c920b7b826a.html]]></link>
        <description><![CDATA[
		
		<p>1.假货</p>
<p>a boy buys toy in toy shop ,when boss askes the money is fake,the boy says that :your toy is also fake</p>
<p>2.Catch a cold 得感冒 <br>
During the fight, the boxer swiped the air furiously, but could not hit his opponent. <br>
<br>
&quot;How am I doing?&quot; he asked the coach at the end of the round. <br>
<br>
&quot;Well, if you keep this up,&quot; replied the coach, &quot;he might feel the wind and catch a cold.&quot;</p>
<p>3.Second language <br>
A mother mouse was out for a stroll with her babies when she spotted a cat crouched behind a bush. She watched the cat, and the cat watched the mice. <br>
<br>
Mother mouse barked fiercely, &quot;Woof, woof, woof!&quot; The cat was so terrified that it ran for it's life. <br>
<br>
Mother mouse turned to her babies and said, &quot;Now, do you understand the value of a second language?&quot; <br>
<br>
一只母老鼠带着孩子出来散步，突然她看见一只猫正在灌木丛中虎视耽耽。 <br>
<br>
母老鼠向着猫叫道：&ldquo;汪，汪，汪&rdquo;，猫听了非常害怕，拼命跑走了。 <br>
<br>
母老鼠回过头洋洋自得的对孩子说：&ldquo;现在你知道外语的重要性了吧。&rdquo;</p>
<p>4.这钟准吗？&rdquo; <br>
Dan was the doorman of a club in a big city. Everyday, thousands of people passed his door, and a lot of them stopped and asked him, &quot;What's the time, please?&quot; <br>
<br>
After a few months, Dan said to himself, &quot;I'm not going to answer all those stupid people any more. I'm going to buy a big clock and put it upon the wall here.&quot; Then he did so. <br>
<br>
&ldquo;Now people aren't going to stop and ask me the time,&quot; he thought happily. <br>
<br>
But after that, a lot of people stopped, looked at the clock and then asked Dan, &quot;Is that clock right?&rdquo;</p>
<p>5.我已经反着铺了！&rdquo; <br>
<br>
A woman said to her husband, &ldquo;dear, look at our sheet! It's too dirty. Would you like to wash it now?&rdquo; <br>
<br>
The man looked at the sheet and then thought for a while and then said, &ldquo;I don't think it's necessary. We can turn the sheet over. Is that all right?&rdquo; <br>
<br>
His wife was very angry at this. &ldquo;How lazy you are!&rdquo; She shouted, &ldquo;To tell you the truth, I turned it over last week.&rdquo;<br>
<br>
Hello,my friends,<br>
These humors are collected from internet. Just for pleasure!</p> 
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/gfws/blog/category/%D3%A2%D3%EF%D0%C4%B5%C3">英语心得</a>&nbsp;<a href="http://hi.baidu.com/gfws/blog/item/b1884c087e781c920b7b826a.html#comment">查看评论</a>]]></description>
        <pubDate>2008年10月30日 星期四  01:16 P.M.</pubDate>
        <category><![CDATA[英语心得]]></category>
        <author><![CDATA[苍狼嗥月]]></author>
		<guid>http://hi.baidu.com/gfws/blog/item/b1884c087e781c920b7b826a.html</guid>
</item>

<item>
        <title><![CDATA[阳阳+++++++++++++阳阳++++++++++++++阳阳]]></title>
        <link><![CDATA[http://hi.baidu.com/gfws/blog/item/86a60708ac689835e92488bb.html]]></link>
        <description><![CDATA[
		
		<p><a href="http://dl_dir.qq.com/qqfile/qq/QQ2008beta1efg/QQ2008Beta1_BlessingKB1.exe">http://dl_dir.qq.com/qqfile/qq/QQ2008beta1efg/QQ2008Beta1_BlessingKB1.exe</a></p>
<p>下载QQ</p> 
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/gfws/blog/category/%C4%AC%C8%CF%B7%D6%C0%E0">默认分类</a>&nbsp;<a href="http://hi.baidu.com/gfws/blog/item/86a60708ac689835e92488bb.html#comment">查看评论</a>]]></description>
        <pubDate>2008年05月31日 星期六  08:57 A.M.</pubDate>
        <category><![CDATA[默认分类]]></category>
        <author><![CDATA[苍狼嗥月]]></author>
		<guid>http://hi.baidu.com/gfws/blog/item/86a60708ac689835e92488bb.html</guid>
</item>

<item>
        <title><![CDATA[不实现抽象方法仍是抽象类]]></title>
        <link><![CDATA[http://hi.baidu.com/gfws/blog/item/8accd68804fa7697a5c27236.html]]></link>
        <description><![CDATA[
		
		<p>抽象类必须用关键字abstract声明<br>
抽象方法只需声明，而不需实现,并且也一定要以abstract关键字声明</p>
<p>在派生类中要必须使用virtual关键字来实现抽象类中的抽象方法<br>
如果没有实现抽象类中的方法,则派生类还是抽象类,并且一定要以abstract关键字声明<br>
也就是说:抽象类的子类必须覆盖所有的抽象方法后才能被实例化，否则这个子类还是个抽象类</p> 
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/gfws/blog/category/c%23">c#</a>&nbsp;<a href="http://hi.baidu.com/gfws/blog/item/8accd68804fa7697a5c27236.html#comment">查看评论</a>]]></description>
        <pubDate>2007年12月14日 星期五  11:10 A.M.</pubDate>
        <category><![CDATA[c#]]></category>
        <author><![CDATA[苍狼嗥月]]></author>
		<guid>http://hi.baidu.com/gfws/blog/item/8accd68804fa7697a5c27236.html</guid>
</item>

<item>
        <title><![CDATA[C#中的equals与==的比较(2)]]></title>
        <link><![CDATA[http://hi.baidu.com/gfws/blog/item/86a6070833d4ef33e824881d.html]]></link>
        <description><![CDATA[
		
		<p>对于值类型，如果对象的值相等，则相等运算符 (==) 返回 true，否则返回 false。对于string 以外的引用类型，如果两个对象引用同一个对象，则 == 返回 true。对于 string 类型，== 比较字符串的值。<br>
==操作比较的是两个变量的值是否相等<br>
equals（）方法比较的是两个对象的内容是否一致．equals也就是比较引用类型是否是对同一个对象的引用。static void Main()<br>
&nbsp;&nbsp;&nbsp;  {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  string a = new string(new char[] { 'h', 'e', 'l', 'l', 'o' });<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  string b = new string(new char[] { 'h', 'e', 'l', 'l', 'o' });&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ff0000"> //未开辟新内存空间,使用的还是a的内存空间,相当于a对象,它们两个在堆中使用的是一个内存空间.当建立b时，先在堆中查找有没有 所需要的内容，有的话，就直接指向，没有的话就新建一个<br>
</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  Console.WriteLine (a==b);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  //输出true,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  Console.WriteLine (a.Equals(b));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  //输出true,</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  object c = new object();<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  object d = new object();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  <font color="#ff0000">//在堆中开辟新的内存空间，对象内容与c是不同的，与字符串对象不同，这样的对象建立的时间，不用在堆中查找有没有相同的内容，直接在堆内存中开辟一块新的内存空间.<br>
<font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  Console.WriteLine(c == d);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  //输出false,因为cd它们两个在栈中的内容不一样<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  Console.WriteLine(c.Equals(d));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  </font><font color="#ff0000">//输出false,因为虽然建立cd时所用的语法是一样的，但终究它们不是相同的对象，只有用object d=c;这样才是相同的对象<br>
</font><br>
</font></p>
<p> </p>
<p>　　　object e = new object();<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  　object f = e;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ff0000"> 新建立对象f，这时把已经有的对象赋给f，这样f就不会在堆内存中开辟新的内存空间，而是直接把,e的引用传给f，也就是把e在栈中的引用值，传到f在栈中的内存中.这样它们就同时指向了相同的椎内存.<br>
</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  Console.WriteLine(c == d);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  Console.WriteLine(c.Equals(d));<br>
<br>
}<br>
说明equals比较的是堆中的内容,也就是两个对象的内容;<br>
而==比较的是值，也就是栈中的内容.</p>
<p> </p>
<p>总结，用string 建立新对象时，会在内存中查找有没有相同的内容，有的话，直接把新建立的对象指过去，没有的话，就在堆中开辟新的内存空间．这个string对象还是比较特殊的.<br>
而用其它类新建立的对象，就没有在堆中查找的步骤，直接在堆内存中开辟一块新的内存空间．当然不包括下面这种形式：　　　<br>
object e = new object();<br>
object f = e;<br>
把新建立的对象以原有的对象赋值，这样就不会在堆内存中开辟新的空间．</p>
<p>以上内容是操作中得到的，正确与否，有待进一步考察．<br>
(在java中好像以下是建立不相同的对象,也就是说在堆中的不共用内存,当然在栈内存中保留的引用也不相同,但彼此的堆内容是相同的,都是字符串&quot;abc&quot;.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
string a = new string(&quot;abc&quot;);<br>
string b = new string(&quot;abc&quot;)</p> 
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/gfws/blog/category/c%23">c#</a>&nbsp;<a href="http://hi.baidu.com/gfws/blog/item/86a6070833d4ef33e824881d.html#comment">查看评论</a>]]></description>
        <pubDate>2007年12月13日 星期四  09:49 P.M.</pubDate>
        <category><![CDATA[c#]]></category>
        <author><![CDATA[苍狼嗥月]]></author>
		<guid>http://hi.baidu.com/gfws/blog/item/86a6070833d4ef33e824881d.html</guid>
</item>

<item>
        <title><![CDATA[C#里的抽象方法]]></title>
        <link><![CDATA[http://hi.baidu.com/gfws/blog/item/5b208226cd70ee148b82a17d.html]]></link>
        <description><![CDATA[
		
		<p style="text-indent: 2em">由于抽象类本身表达的是抽象的概念，因此类中的许多方法并不一定要有具体的实现，而只是留出一个接口来作为派生类重载的界面。举一个简单的例子，&ldquo;图形&rdquo;这个类是抽象的，它的成员方法&ldquo;计算图形面积&rdquo;也就没有实际的意义。面积只对&ldquo;图形&rdquo;的派生类比如&ldquo;圆&rdquo;、&ldquo;三角形&rdquo;这些非抽象的概念才有效，那么我们就可以把基类&ldquo;图形&rdquo;的成员方法&ldquo;计算面积&rdquo;声明为抽象的，具体的实现交给派生类通过重载来实现。</p>
<p style="text-indent: 2em">一个方法声明中如果加上abstract修饰符，我们称该方法为抽象方法(abstract method)。</p>
<p style="text-indent: 2em">如果一个方法被声明也是抽象的，那么该方法默认也是一个虚方法。事实上，抽象方法是一个新的虚方法，它不提供具体的方法实现代码。我们知道，非虚的派生类要求通过重载为继承的虚方法提供自己的实现，而抽象方法则不包含具体的实现内容，所以方法声明的执行体中只有一个分号&ldquo;；&rdquo;。</p>
<p style="text-indent: 2em">只能在抽象类中声明抽象方法。对抽象方法，不能再使用static或virtual修饰符，而且方法不能有任何可执行代码，哪怕只是一对大括号中间加一个分号&ldquo;{;}&rdquo;都不允许出现，只需要给出方法的原型就可以了。<a href="http://www.bianceng.cn/">本文发表于www.bianceng.cn</a></p>
<p style="text-indent: 2em">&ldquo;交通工具&rdquo;的&ldquo;鸣笛&rdquo;这个方法实际上是没有什么意义的，接下来我们利用抽象方法的概念继续改写汽车类的例子：</p>
<p style="text-indent: 2em">程序清单14-6:</p>
<pre>using System;
abstruct class Vehicle //定义汽车类
{
  public int wheels; //公有成员：轮子个数
  protected float weight; //保护成员：重量
  public Vehicle(int w,float g){
     wheels=w;
     weight=g;
  }
 public abstract void Speak();
};

class Car:Vehicle //定义轿车类
{
  int passenger; //私有成员：乘客数
  public Car(int w,float g,int p):base(w,g)
  {
    wheels=w;
    weight=g;
    passengers=p;
  }
  public override void Speak(){
    Console.WriteLine(&quot;The car is speaking:Di-di!&quot;);
   }
}

class Truck:Vehicle //定义卡车类
{
  int passengers; //私有成员：乘客数
  float load; //私有成员：载重量
  public Truck(int w,float g,int p,float l):base(w,g)
  {
   wheels=w;
   weight=g;
   passengers=p;
   load=l;
  }
  public override void Speak(){
    Console.WriteLine(&quot;The truck is speaking:Ba-ba!&quot;);
   }
}</pre>
<p style="text-indent: 2em">还要注意，抽象方法在派生类中不能使用base关键字来进行访问。例如，下面的代码在编译时会发生错误：</p>
<p style="text-indent: 2em">class A<br>
{<br>
public abstract void F();<br>
}</p>
<p style="text-indent: 2em">class B:A<br>
{<br>
public override void F(){<br>
base.F(); //错误，base.F是抽象方法<br>
}<br>
}<br>
我们还可以利用抽象方法来重载基类的虚方法，这时基类中虚方法的执行代码就被&ldquo;拦截&rdquo;了。下面的例子说明了这一点：</p>
<pre>class A
{
 public virtual void F(){
    Console.WriteLine(&quot;A.F&quot;);
 }
}

abstract class B:A
{
 public abstract override void F();
}

class C:B
{
 public override void F(){
  Console.WriteLine(&quot;C.F&quot;);
 }
}</pre>
<p style="text-indent: 2em">类A声明了一个虚方法F，派生类B使用抽象方法重载了F，这样B的派生类C就可以重载F并提供自己的实现。</p> 
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/gfws/blog/category/c%23">c#</a>&nbsp;<a href="http://hi.baidu.com/gfws/blog/item/5b208226cd70ee148b82a17d.html#comment">查看评论</a>]]></description>
        <pubDate>2007年12月13日 星期四  07:46 P.M.</pubDate>
        <category><![CDATA[c#]]></category>
        <author><![CDATA[苍狼嗥月]]></author>
		<guid>http://hi.baidu.com/gfws/blog/item/5b208226cd70ee148b82a17d.html</guid>
</item>

<item>
        <title><![CDATA[数据结构,链表]]></title>
        <link><![CDATA[http://hi.baidu.com/gfws/blog/item/2ef3dab458eac1708bd4b2f0.html]]></link>
        <description><![CDATA[
		
		<p>class Program<br>
&nbsp;&nbsp;&nbsp;  {&nbsp;&nbsp;  <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  static void Main(string[] args)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  //ListNode firstNode;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  //firstNode = null;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  //string myStr = &quot;gf&quot;;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  //int myInt = 123;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  //firstNode = new ListNode(myStr,firstNode);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  //firstNode.Next = new ListNode(myInt, firstNode);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  //ListNode current = firstNode;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  //while (current != null)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  //{<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  //&nbsp;&nbsp;&nbsp;  Console.Write(current.Data);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  //&nbsp;&nbsp;&nbsp;  current = current.Next;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  //}<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  bool myBool = true;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  int myInt = 123;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  int myInt2 = 235;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  List list = new List();<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  list.InsetAtFront(myBool);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  list.InsertAtBack(myInt);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  list.InsertAtBack(myInt2);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  list.Print();<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  }<br>
&nbsp;&nbsp;&nbsp;  }</p>
<p>&nbsp;&nbsp;&nbsp;  class ListNode<br>
&nbsp;&nbsp;&nbsp;  {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  private object data;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  private ListNode next;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  public ListNode(object dataValue)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  :this(dataValue,null)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  }<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  public ListNode(object dataValue, ListNode nextNode)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  data = dataValue;  //存储本结点值<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  next = nextNode;&nbsp;&nbsp;  //关联下一结点,next称为链<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  }<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  public ListNode Next&nbsp;&nbsp;  //自引用类,产生<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  get<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  return next;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  }<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  set<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  next = value;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  }<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  } <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  public object Data<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  get<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  return data;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  }<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  <br>
&nbsp;&nbsp;&nbsp;  }<br>
&nbsp;&nbsp;&nbsp;  public class List<br>
&nbsp;&nbsp;&nbsp;  {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  private ListNode firstNode;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  private ListNode lastNode;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  private string name;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  public List(string listName)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  name = listName;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  firstNode = lastNode = null;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  }<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  public List()<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  : this(&quot;list&quot;)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  }<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  public void InsetAtFront(object insertItem)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  if (IsEmpty())<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  firstNode = lastNode = new ListNode(insertItem);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  else<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  firstNode = new ListNode(insertItem,firstNode);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  }<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  public void InsertAtBack(object insertItem)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  if (IsEmpty())<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  firstNode = lastNode = new ListNode(insertItem);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  else<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  lastNode = lastNode.Next = new ListNode(insertItem);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  }<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  public bool IsEmpty()<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  return firstNode == null;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  }<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  public void Print()<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  if(IsEmpty())<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  {return;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  }<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ListNode current = lastNode;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  while (current != null)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  Console.WriteLine(current.Data);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  current=current.Next;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  }</p>
<p><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  }<br>
&nbsp;&nbsp;&nbsp;  }</p> 
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/gfws/blog/category/c%23">c#</a>&nbsp;<a href="http://hi.baidu.com/gfws/blog/item/2ef3dab458eac1708bd4b2f0.html#comment">查看评论</a>]]></description>
        <pubDate>2007年12月13日 星期四  09:44 A.M.</pubDate>
        <category><![CDATA[c#]]></category>
        <author><![CDATA[苍狼嗥月]]></author>
		<guid>http://hi.baidu.com/gfws/blog/item/2ef3dab458eac1708bd4b2f0.html</guid>
</item>

<item>
        <title><![CDATA[数据库的模式]]></title>
        <link><![CDATA[http://hi.baidu.com/gfws/blog/item/57c320a4063fe4f49052eecd.html]]></link>
        <description><![CDATA[
		
		<p>三级模式结构的优点：使数据库系统中的数据能保持较高的物理独立性和逻辑独立性。 <br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  <span style="color: #808080">对于一个仓库来说，东西需要经常搬进搬出，但是仓库本身的结构一般不会改变，而且存放东西的架子一般也不会改变。不同的东西所需要的架子是不一样的，也可以说是它们的&quot;模式&quot;是不同的。在某个架子上的东西对于这个架子的&quot;模式&quot;来说就是&quot;实例&quot;。 <br>
  在数据库的三级模式中，逻辑模式和物理模式之间的关系可以看作是设计与实现的关系，而逻辑模式和子模式之间的关系可以看作是全局和局部的关系。 </span></p>
<span style="color: #808080">
<div class="box2"><span class="Tit">内模式</span></div>
<p>
<table class="htb wr" cellspacing="0" cellpadding="0" width="100%" border="0">
    <tbody>
        <tr>
            <td>
            <div class="box2 p14"> 内模式（也称存储模式）<br>
            <br>
            是数据物理结构和存储方式的描述<br>
            <br>
            是数据在数据库内部的表示方式<br>
            <br>
            记录的存储方式（顺序存储，按照B树结构存储，按hash方法存储）<br>
            <br>
            索引的组织方式<br>
            <br>
            数据是否压缩存储<br>
            <br>
            数据是否加密<br>
            <br>
            数据存储记录结构的规定<br>
            <br>
            一个数据库只有一个内模式</div>
            </td>
        </tr>
    </tbody>
</table>
</p>
</span> 
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/gfws/blog/category/sql%D1%A7%CF%B0">sql学习</a>&nbsp;<a href="http://hi.baidu.com/gfws/blog/item/57c320a4063fe4f49052eecd.html#comment">查看评论</a>]]></description>
        <pubDate>2007年12月12日 星期三  01:41 P.M.</pubDate>
        <category><![CDATA[sql学习]]></category>
        <author><![CDATA[苍狼嗥月]]></author>
		<guid>http://hi.baidu.com/gfws/blog/item/57c320a4063fe4f49052eecd.html</guid>
</item>

<item>
        <title><![CDATA[抽象类继承接口,并要实现接口中方法]]></title>
        <link><![CDATA[http://hi.baidu.com/gfws/blog/item/b3ed034f6b812235afc3ab9a.html]]></link>
        <description><![CDATA[
		
		<p>&nbsp;&nbsp;&nbsp;  class Program<br>
&nbsp;&nbsp;&nbsp;  {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  static void Main(string[] args)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  int[] aa ={ 1,2 };</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  }<br>
&nbsp;&nbsp;&nbsp;  }<br>
&nbsp;&nbsp;&nbsp;  interface aa<br>
&nbsp;&nbsp;&nbsp;  {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  void fun();<br>
&nbsp;&nbsp;&nbsp;  }<br>
&nbsp;&nbsp;&nbsp;  public abstract class aaa : aa<br>
&nbsp;&nbsp;&nbsp;  {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  public  void fun()<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  }<br>
&nbsp;&nbsp;&nbsp;  }</p> 
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/gfws/blog/category/c%23">c#</a>&nbsp;<a href="http://hi.baidu.com/gfws/blog/item/b3ed034f6b812235afc3ab9a.html#comment">查看评论</a>]]></description>
        <pubDate>2007年12月03日 星期一  09:22 A.M.</pubDate>
        <category><![CDATA[c#]]></category>
        <author><![CDATA[苍狼嗥月]]></author>
		<guid>http://hi.baidu.com/gfws/blog/item/b3ed034f6b812235afc3ab9a.html</guid>
</item>

<item>
        <title><![CDATA[datareader和dataset]]></title>
        <link><![CDATA[http://hi.baidu.com/gfws/blog/item/bf66ce1b367328f9af513396.html]]></link>
        <description><![CDATA[
		
		<p>用DataReader、DataSet、DataAdapter和DataView <br>
<br>
　　ADO.NET提供两个对象用于检索关系型数据并把它存储在内存中，分别是DataSet和DataReader。DataSet提供内存中关系数据的表现--包括表和次序、约束等表间的关系的完整数据集合。DataReader提供快速、只向前、只读的来自数据库的数据流。 <br>
<br>
　　使用DataSet时，一般使用DataAdapter（也可能是CommandBuilder）与数据源交互，用DataView对DataSet中的数据进行排序和过滤。DataSet可以被继承来建立强化类型的DataSet，用于暴露表、行、列作为强化类型对象属性。 <br>
<br>
　　下面的内容包含什么时候使用DataSet或DataReader，以及怎样优化访问它们所包含的数据，也包括怎样优化DataAdapter和DataView的使用（也包括CommandBuilder）。 <br>
<br>
　　DataSet与DataReader的对比 <br>
<br>
　　在设计应用程序时，决定使用DataSet还是DataReader需要考虑应用程序需要的功能。 <br>
<br>
　　使用DataSet是为了实现应用程序的下述功能： <br>
<br>
　　l 操作结果中的多个分离的表。 <br>
<br>
　　l 操作来自多个源（例如来自多个数据库、XML文件和电子表格的混合数据）的数据。 <br>
<br>
　　l 在层之间交换数据或使用XML Web服务。与DataReader 不同，DataSet能被传递到远程客户端。 <br>
<br>
　　l 通过缓冲重复使用相同的行集合以提高性能（例如排序、搜索或过滤数据）。 <br>
<br>
　　l 每行执行大量的处理。在使用DataReader返回的行上进行扩展处理将使连接存在的时间比必要的更长，从而降低效率。 <br>
<br>
　　l 使用XML操作（例如XSLT转换和Xpath查询）维护数据。 <br>
<br>
　　在应用程序需要以下功能时使用DataReader： <br>
<br>
　　l 不需要缓冲数据。 <br>
<br>
　　l 正在处理的结果集太大而不能全部放入内存中。 <br>
<br>
　　l 需要迅速一次性访问数据，采用只向前的只读的方式。 <br>
<br>
　　注意：当填充DataSet的时候，DataAdapter使用DataReader。因此使用DataAdapter代替DataSet获得的性能是节约了DataSet消耗的内存和组装DataSet所需要的周期。这种性能的提高大部分是有名无实的，因此你应该根据需要的功能为基础来做设计决定。 <br>
<br>
　　使用强类型DataSet的好处 <br>
<br>
　　使用DataSet的另一个好处是它能被继承用于建立强类型的DataSet。强类型DataSet的好处包括设计时的检查和强类型DataSet 的Visual Studio .NET语句填充。当你为DataSet固定了大纲或关系结构时，就能建立强类型DataSet，把行和列作为对象的属性而不是项的集合。例如，作为暴露顾客表的某一行的列名的代替，你可以暴露Customer对象的 Name属性。强类型的DataSet衍生自DataSet类，因此不会牺牲DataSet的任何功能，也就是说，强类型的DataSet也可以是远程的，并作为数据绑定控件（例如DataGrid）的数据源提供。如果不知道大纲，也能通过使用通常的DataSet获得好处，但是丧失了强类型DataSet的附加特性。 <br>
<br>
　　在强类型DataSet中处理空值 <br>
<br>
　　使用强类型DataSet时，你能给DataSet 的XML大纲定义语言（XSD）作注解以确保强类型DataSet正确的处理空（Null）的引用。空值（nullValue）注释使你能用String.Empty这个特定值代替DBNull、保持了空引用、或者产生一个异常。选择其中的哪个依赖于应用程序的内容，默认情况下遇到空引用将产生一个异常。 <br>
<br>
　　刷新DataSet中的数据 <br>
<br>
　　如果你希望使用更新后的值从服务器刷新数据集中的值，使用DataAdapter.Fill。如果主键定义在数据表上，DataAdapter.Fill基于主键匹配新行，并把服务器的数据改成已存在的行。被刷新行的RowState设置为Unchanged，即使在刷新前它被修改过。注意如果给数据表定义了主键，DataAdapter.Fill添加新行可能重复主键值。 <br>
<br>
　　如果希望用服务器的当前值刷新一个表，并且保持表中行的改变，你必须首选使用DataAdapter.Fill组合它，填充一个新的数据表，接着将该数据表合并（Merge）进一个数据集，并把preserveChanges值设为true。 <br>
<br>
　　在DataSet中搜索数据 <br>
<br>
　　在一个数据集中查询符合特定条件的行时，使用基于索引（index-based）的查看表将提高性能。给数据表指定主键（PrimaryKey）值时，就建立了一个索引。当为数据表建立数据视图（DataView）时也建立了索引。下面是一些使用基于索引查看的技巧： <br>
<br>
　　如果查询是在数据表的主键列上进行的，使用DataTable.Rows.Find代替DataTable.Select。 <br>
<br>
　　查询非主键列，可以使用数据视图来提高多个数据查询的速度。当给数据视图添加排序时，将建立搜索时使用的索引。数据视图暴露了查询下层数据表的Find和FindRows方法。 <br>
<br>
　　如果你不是查询表的排序视图，也可以通过为数据表建立数据视图获得基于索引的查看表的好处。注意如果你执行数据上的多个查询这是唯一的好处。如果你只执行单个查询，需要建立索引的过程将因为使用索引而降低了性能。 <br>
<br>
　　数据视图（DataView）结构 <br>
<br>
　　当数据视图建立后，并且当Sort、RowFilter或RowStateFilter或者属性被修改时，数据视图为下层数据表中的数据建立索引。当建立数据视图对象时，使用把Sort、RowFilter和RowStateFilter值作为参数的数据视图构造函数。结果是建立了一次索引。建立&quot;空&quot;数据视图，然后设置Sort、RowFilter和RowStateFilter属性将导致至少两次建立索引。</p>
<p>DataReader是对数据一次性前向只读的数据阅读器，用来接受XXXcommand的EcexuteReader方法查询数据库的结果，EcexuteReader只返回数据。 <br>
DataAdapter和XXXcommand比较相似，有一个SQL语句和连接对象构成。其调用fill方法将查询数据库的结果保存在dataset中的datatable中，fill方法检索数据，并且检索模式，也就是每个字段的字段名，数据类型，最大长度及其他属性.</p> 
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/gfws/blog/category/%2Enet">.net</a>&nbsp;<a href="http://hi.baidu.com/gfws/blog/item/bf66ce1b367328f9af513396.html#comment">查看评论</a>]]></description>
        <pubDate>2007年12月03日 星期一  08:48 A.M.</pubDate>
        <category><![CDATA[.net]]></category>
        <author><![CDATA[苍狼嗥月]]></author>
		<guid>http://hi.baidu.com/gfws/blog/item/bf66ce1b367328f9af513396.html</guid>
</item>

<item>
        <title><![CDATA[委托与事件]]></title>
        <link><![CDATA[http://hi.baidu.com/gfws/blog/item/4aefd016f5d57f1b962b431a.html]]></link>
        <description><![CDATA[
		
		<p>public class myClass<br>
&nbsp;&nbsp;&nbsp;  {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  string name;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  public delegate void delegateControl(string str);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  public event delegateControl myEvent;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  public myClass()<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  }<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  public string NameIn<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  get<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  return name;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  }<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  set<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  name = value;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  myEvent(&quot;gf&quot;);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  }<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  }<br>
&nbsp;&nbsp;&nbsp;  }</p>
<p>&nbsp;&nbsp;&nbsp;  class eventClass<br>
&nbsp;&nbsp;&nbsp;  {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  public void willEvent(string str)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  Console.WriteLine(&quot;事件被触发,名字被修改为&quot;+str);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  }<br>
<br>
&nbsp;&nbsp;&nbsp;  }</p>
<p>&nbsp;&nbsp;&nbsp;  class Program<br>
&nbsp;&nbsp;&nbsp;  {&nbsp;&nbsp;&nbsp;  <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  static void Main(string[] args)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  eventClass modifyevent = new eventClass();</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  myClass myclass = new myClass();<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  myclass.myEvent += new myClass.delegateControl(modifyevent.willEvent);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  myclass.NameIn = &quot;gf&quot;;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  }</p>
<p>&nbsp;&nbsp;&nbsp;  }</p>
<p> </p>
<p> </p>
<p>++++++++++++++++++++++++++++++</p>
<p>如何理解委托？ <br>
<br>
答:据说相当于函数指针,定义了委托就可以在不调用原方法名称的情况下调用那个方法. <br>
<br>
msdn2005中是这样解释的: <br>
<br>
委托具有以下特点： <br>
<br>
委托类似于 C++ 函数指针，但它是类型安全的。 <br>
<br>
委托允许将方法作为参数进行传递。 <br>
<br>
委托可用于定义回调方法。 <br>
<br>
委托可以链接在一起；例如，可以对一个事件调用多个方法。 <br>
<br>
方法不需要与委托签名精确匹配。有关更多信息，请参见协变和逆变。 <br>
<br>
C# 2.0 版引入了匿名方法的概念，此类方法允许将代码块作为参数传递，以代替单独定义的方法。</p> 
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/gfws/blog/category/c%23">c#</a>&nbsp;<a href="http://hi.baidu.com/gfws/blog/item/4aefd016f5d57f1b962b431a.html#comment">查看评论</a>]]></description>
        <pubDate>2007年12月02日 星期日  10:03 P.M.</pubDate>
        <category><![CDATA[c#]]></category>
        <author><![CDATA[苍狼嗥月]]></author>
		<guid>http://hi.baidu.com/gfws/blog/item/4aefd016f5d57f1b962b431a.html</guid>
</item>

<item>
        <title><![CDATA[掷筛子]]></title>
        <link><![CDATA[http://hi.baidu.com/gfws/blog/item/167d1bd559cf09c750da4b4a.html]]></link>
        <description><![CDATA[
		
		<p>&nbsp;&nbsp;&nbsp;  class Program<br>
&nbsp;&nbsp;&nbsp;  {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  static void Main(string[] args)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  Random randomnum = new Random();<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  int[] arraytest=new int[7];<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  for (int roll = 0; roll &lt;60000;roll++ )<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ++arraytest[randomnum.Next(1,7)];<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  for(int i=1;i&lt;7;i++)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  Console.WriteLine(arraytest[i]);&nbsp;&nbsp;&nbsp;&nbsp;  //输出筛子每个面出现的次数<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  }<br>
&nbsp;&nbsp;&nbsp;  }</p> 
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/gfws/blog/category/c%23">c#</a>&nbsp;<a href="http://hi.baidu.com/gfws/blog/item/167d1bd559cf09c750da4b4a.html#comment">查看评论</a>]]></description>
        <pubDate>2007年12月02日 星期日  08:12 P.M.</pubDate>
        <category><![CDATA[c#]]></category>
        <author><![CDATA[苍狼嗥月]]></author>
		<guid>http://hi.baidu.com/gfws/blog/item/167d1bd559cf09c750da4b4a.html</guid>
</item>

<item>
        <title><![CDATA[c#数组]]></title>
        <link><![CDATA[http://hi.baidu.com/gfws/blog/item/3e1e59ee6ff981f8b3fb9545.html]]></link>
        <description><![CDATA[
		
		<p>class Program<br>
&nbsp;&nbsp;&nbsp;  {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  static void Main(string[] args)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  int[] arrayint=new int[100];&nbsp;&nbsp;&nbsp;  //数组定义时要指定长度<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  for(int i=0;i&lt;100;i++)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  arrayint[i]=i;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  }<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  int a=arrayint.Length;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  Console.WriteLine(a);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  int[] arrayint2=new int[100];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  //从一个数组把值赋到另外一个数组中<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  for(int j=0;j&lt;a;j++)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  arrayint2[j]=arrayint[j];<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  Console.WriteLine(arrayint2[j]);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  }</p>
<p><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  } <br>
&nbsp;&nbsp;&nbsp;  }</p> 
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/gfws/blog/category/c%23">c#</a>&nbsp;<a href="http://hi.baidu.com/gfws/blog/item/3e1e59ee6ff981f8b3fb9545.html#comment">查看评论</a>]]></description>
        <pubDate>2007年12月02日 星期日  07:53 P.M.</pubDate>
        <category><![CDATA[c#]]></category>
        <author><![CDATA[苍狼嗥月]]></author>
		<guid>http://hi.baidu.com/gfws/blog/item/3e1e59ee6ff981f8b3fb9545.html</guid>
</item>

<item>
        <title><![CDATA[抽象类与多态]]></title>
        <link><![CDATA[http://hi.baidu.com/gfws/blog/item/2da3c65c90d98040faf2c00a.html]]></link>
        <description><![CDATA[
		
		<p>&nbsp;&nbsp;&nbsp;  class Program<br>
&nbsp;&nbsp;&nbsp;  {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  static void Main(string[] args)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  //抽象类的调试<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; myclass newclass;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  newclass = new class1();<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  newclass.fun();<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  newclass.fun2();<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; newclass = new class2();<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; newclass.fun();<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  newclass.fun2();</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  }<br>
&nbsp;&nbsp;&nbsp;  }<br>
<br>
public abstract class myclass<br>
{<br>
&nbsp;&nbsp;&nbsp;  public abstract void fun();<br>
&nbsp;&nbsp;&nbsp;  public void fun2()<br>
&nbsp;&nbsp;&nbsp;  {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  Console.WriteLine(&quot;我是抽象类中的函数&quot;);<br>
&nbsp;&nbsp;&nbsp;  }<br>
}<br>
public class class1:myclass<br>
{<br>
&nbsp;&nbsp;&nbsp;  public override void fun()<br>
&nbsp;&nbsp;&nbsp;  {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  Console.WriteLine(&quot;我是抽象类产生的&quot;);<br>
&nbsp;&nbsp;&nbsp;  }<br>
}<br>
public class class2 : myclass<br>
{<br>
&nbsp;&nbsp;&nbsp;  public override void fun()<br>
&nbsp;&nbsp;&nbsp;  {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  Console.WriteLine(&quot;我是抽象类产生的第二个类&quot;);<br>
&nbsp;&nbsp;&nbsp;  }<br>
}</p> 
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/gfws/blog/category/c%23">c#</a>&nbsp;<a href="http://hi.baidu.com/gfws/blog/item/2da3c65c90d98040faf2c00a.html#comment">查看评论</a>]]></description>
        <pubDate>2007年12月02日 星期日  03:37 P.M.</pubDate>
        <category><![CDATA[c#]]></category>
        <author><![CDATA[苍狼嗥月]]></author>
		<guid>http://hi.baidu.com/gfws/blog/item/2da3c65c90d98040faf2c00a.html</guid>
</item>

<item>
        <title><![CDATA[接口与类]]></title>
        <link><![CDATA[http://hi.baidu.com/gfws/blog/item/5a2ed933c1750240ac4b5f08.html]]></link>
        <description><![CDATA[
		
		<p>&nbsp;&nbsp;&nbsp;  class Program<br>
&nbsp;&nbsp;&nbsp;  {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  static void Main(string[] args)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  //接口的调试<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  myinterface interclass;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  interclass = new classinter1();<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  interclass.fun(&quot;aa&quot;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  interclass = new classinter2();<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  interclass.fun(&quot;aa&quot;);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  }<br>
&nbsp;&nbsp;&nbsp;  }</p>
<p>interface myinterface&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  //这里不用加什么修饰符,接口本来就是用来继承的,只能是public<br>
{<br>
<font color="#ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  void fun(string a);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  //接口中的函数定义不能声明访问修饰符(否则会提示修饰符无效),可以带参数</font><br>
}<br>
public class classinter1:myinterface<br>
{<br>
&nbsp;&nbsp;&nbsp;  public void fun(string a)<br>
&nbsp;&nbsp;&nbsp;  {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  Console.WriteLine(&quot;我是接口产生的类一&quot;);<br>
&nbsp;&nbsp;&nbsp;  }<br>
}<br>
public class classinter2:myinterface<br>
{<br>
&nbsp;&nbsp;&nbsp;  public void fun(string a)<br>
&nbsp;&nbsp;&nbsp;  {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  Console.WriteLine(&quot;我是接口产生的类二&quot;);<br>
&nbsp;&nbsp;&nbsp;  }<br>
}</p> 
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/gfws/blog/category/c%23">c#</a>&nbsp;<a href="http://hi.baidu.com/gfws/blog/item/5a2ed933c1750240ac4b5f08.html#comment">查看评论</a>]]></description>
        <pubDate>2007年12月02日 星期日  03:35 P.M.</pubDate>
        <category><![CDATA[c#]]></category>
        <author><![CDATA[苍狼嗥月]]></author>
		<guid>http://hi.baidu.com/gfws/blog/item/5a2ed933c1750240ac4b5f08.html</guid>
</item>


</channel>
</rss>