程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#程序集系列05,讓程序集包含多個module,

C#程序集系列05,讓程序集包含多個module,

編輯:C#入門知識

C#程序集系列05,讓程序集包含多個module,


本篇體驗在一個程序集中包含多個module。

 

□ 創建3個module

→刪除F盤as文件夾中的一些文件,只剩下如下3個文件

→用記事本打開MyFirstModule.cs文件,修改如下,並保存

using System;
public class MyFirstModule
{
    public static void Hello()
    {
        Console.WriteLine("來自module 1的問候~");
    }
}


→用記事本打開MySecondModule.cs文件,修改如下,並保存

using System;
public class MySecondModule
{
    public static void Hello()
    {
        Console.WriteLine("來自module 2的問候~");
    }
}


→把MyFirstModule.cs類編譯成module

→把MySecondModule.cs類編譯成module

→在F盤as文件夾中創建MyThirdModule.cs文件,用記事本打開編寫如下代碼,並保存

using System;
public class MyThirdModule
{
    public static void Hello()
    {
        Console.WriteLine("來自module 3的問候~");
    }
}


→把MyThirdModule.cs類編譯成module

 

□ 創建2個程序集並引用運行

現在需要創建2個程序集,一個程序集中包含MyFirstModule和MySecondModule。另一個程序集包含MySecondModule和MyThirdModule。

→創建程序集AssemblyA.dll包含MyFirstModule和MySecondModule。

→創建程序集AssemblyB.dll包含MySecondModule和MyThirdModule。

→編譯MainClass.cs文件,引用AssemblyA.dll程序集

以上的dos命令等同於:csc /r:AssemblyA.dll /out:MainClass.exe MainClass.cs
→運行MainClass.exe

→修改MainClass.cs文件

using System;
using System;
class MainClass
{
    static void Main()
    {
        MySecondModule.Hello();
        MyThirdModule.Hello();
    }
}

→編譯MainClass.cs,應用AssemblyB.dll程序集

→運行MainClassAnother.exe

 

總結:一個程序集是可以包含多個module的。如果將不常用的代碼放在單獨的module中,就可以減少程序集的載入時間。如果通過網絡下載程序集,還可以節約帶寬。

 

“C#程序集系列”包括:

  C#程序集系列01,用記事本編寫C#,IL代碼,用DOS命令編譯程序集,運行程序

  C#程序集系列02,使用記事本查看可執行程序集的IL代碼

  C#程序集系列03,引用多個module

  C#程序集系列04,在程序集包含多個module的場景下理解關鍵字internal

  C#程序集系列05,讓程序集包含多個module

 

參考資料:

http://www.computersciencevideos.org/  created by Jamie King


C語言&& || !分別是什

&是取址運算符,作用是提取一個變量的地址。
比如你定義了一個變量,那麼在編譯時,系統就會在內存中分配一個空間。
而這個空間在內存中的位置就是它的地址。&就提取它的地址。
e.g int a;在編譯時就給它分配一個地址,比如是2000;&a就是2000。
假如先定義了一個整型指針變量p,p=&a;就是把a的地址2000賦給p。運行後p=2000。
又如scanf("%d",&a);當你輸入3時,它會先根據&a知道a的地址,由地址找到a在內存中的空間,再把3寫入這個空間。
*是指針運算符,作用與&相反,它是根據變量的地址取出變量的值。
比如,*a的值就是變量a的值3。
下面是定義和聲明中用到指針的小結
int *p; 定義一個指向整型數據的指針。
int *p[n]; 定義指針數組p,它由n個指向整型數據的指針元素組成。
int (*p)[n]; p為指向含n個元素的一維數組的指針變量。
int *p(); p為返回一個指針的函數,該指針指向整型數據。
int (*p)(); p為指向函數的指針,該函數返回一個整型值
int **p; p是一個指針變量,它指向一個指向整型數據的指針變量。
如果你想系統的了解建議你可以看看譚浩強的《c程序設計》(第三版)這本書通俗易懂。是學習c語言不錯的教材。
 

C語言&& || !分別是什

&是取址運算符,作用是提取一個變量的地址。
比如你定義了一個變量,那麼在編譯時,系統就會在內存中分配一個空間。
而這個空間在內存中的位置就是它的地址。&就提取它的地址。
e.g int a;在編譯時就給它分配一個地址,比如是2000;&a就是2000。
假如先定義了一個整型指針變量p,p=&a;就是把a的地址2000賦給p。運行後p=2000。
又如scanf("%d",&a);當你輸入3時,它會先根據&a知道a的地址,由地址找到a在內存中的空間,再把3寫入這個空間。
*是指針運算符,作用與&相反,它是根據變量的地址取出變量的值。
比如,*a的值就是變量a的值3。
下面是定義和聲明中用到指針的小結
int *p; 定義一個指向整型數據的指針。
int *p[n]; 定義指針數組p,它由n個指向整型數據的指針元素組成。
int (*p)[n]; p為指向含n個元素的一維數組的指針變量。
int *p(); p為返回一個指針的函數,該指針指向整型數據。
int (*p)(); p為指向函數的指針,該函數返回一個整型值
int **p; p是一個指針變量,它指向一個指向整型數據的指針變量。
如果你想系統的了解建議你可以看看譚浩強的《c程序設計》(第三版)這本書通俗易懂。是學習c語言不錯的教材。
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved