要求输出:1,2,3,5,8,13,21,34,55,89

前面我已经写了,递归输出方法,见文章

http://www.cnblogs.com/A-I/archive/2010/08/12/1798117.html#1892936

 

在这里,给出数组代替的写法,输出结果相同

 

int[] ilent = new int[11];
  for(int i=0;i<ilent.Length;i++)
  {
   if(i==0||i==1)
   {
    ilent[i]=1;
   }
   else
   {
    ilent[i]=ilent[i-1]+ilent[i-2];
    
   }
   Console.Write(ilent[i]+",");
  }
  Console.Read();

 

欢迎大家给出其他写法

 

posted @ 2011-07-03 09:05 艾伦 阅读(107) 评论(0) 编辑
GAC

GAC(global assambly cache),全局程序集缓存

 

作用是可以存放一些有很多程序都要用到的公共Assembly,例如System.Data、System.Windows.Forms等等。

这样,很 多程序就可以从GAC里面取得Assembly,而不需要再把所有要用到的Assembly都拷贝到应用程序的执行目录下面。

举例而言,如果没有GAC, 那么势必每个WinForm程序的目录下就都要从C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705下面拷贝一 份System.Windows.Forms.dll,这样显然不如都从GAC里面取用方便,也有利于Assembly的升级和版本控制。

可以同名,但是版本必须不同

 

C:\Windows\assembly---我的机器,程序集地址,win7 32bit
 

 

 除了系统默认放置在GAC中的Assembly如System.Windows.Forms以外,我们也可以添加自己的Assembly:

 

1.创建一个strong-name的Assembly,例如ToolbarComponent.dll  
2.运行gacutil   -i   ToolbarComponent.dll,把这个Assembly添加到GAC

 

 

卸载方法就是用gacutil -u [myassebly]

 

GAC中的Assembly必须是strong-name(强类型)的。创建strong-name的Assembly的步骤大致如下:  

  a)   在命令行运行“sn   -k   keyPair.snk”创建一个密钥文件。这里的sn.exe也是.NET附带的一个工具。  
  b)   在VS.NET里面修改“AssemblyInfo.cs”文件:  
  [assembly:   AssemblyDelaySign(false)]    
  [assembly:   AssemblyKeyFile("..\\..\\keyPair.snk")]    
  c)   编译项目,就能得到一个strong-name的Assembly。  

 

.NET   Framework中附带了一些和GAC有关的工具,其中包括:  
  1)Gacutil.exe,一个命令行的工具,用于在GAC中浏览、添加、删除Assembly  
  2)Ngen.exe,也是一个命令行的工具,用于在GAC中创建Native   Image  
  3)mscorcfg.msc,一个MMC终端,可以图形化完成Gacutil.exe的主要功能。
 

 

 

 

 

posted @ 2011-07-03 01:46 艾伦 阅读(137) 评论(1) 编辑

appdomain:应用程序域,是CLR中实现代码隔离的基本机制,只在.net中存在

1.一个进程中可以有多个Appdomain,一个Appdomain只能属于一个进程

 

2.AppDomain是个静态概念,只是限定了对象的边界;线程是个动态概念,它可以运行在不同的AppDomain

 

一个AppDomain内可以创建多个线程,但是不能限定这些线程只能在本AppDomain内执行代码
 3.Assembly是.Net程序的基本部署单元,它可以为CLR提供用于识别类型的元数据等等。Assembly不能单独执行,它必须被加载到 AppDomain中,然后由AppDomain创建程序集中的对象

 

一个Assembly可以被多个AppDomain加载,一个AppDomain可以加载多个Assembly

 

 

4.任何对象只能属于一个AppDomain。AppDomain用来隔离对象,不同AppDomain之间的对象必须通过Proxy(reference type)或者 Clone(value type)通信

 

.net  中的一个程序要运行,os首先会创建一个进程,然后在进程中加载CLR,加载CLR时会默认创建一个AppDomain,它是CLR的运行单元,程序的main方法就是在这里执行的,appdomain是不能被卸载的,只有进程消灭时,Appdomain才会随之消失

我们的Assambly是不能单独执行的,必须被加载到某个 Appdomain,要想卸载assambly,就只能卸载Appdomain

具体代码实现请参照:

 

 

 

 

 

posted @ 2011-07-03 01:07 艾伦 阅读(111) 评论(0) 编辑