extren主要用於聲明在外部實現的方法,什麼叫外部實現的方法呢,一般說來就是用System.Runtime.InteropServices服務的DllImport方法引入非托管代碼程序集。例如調用程序API,C語言寫的方法等等。在這種情況下,聲明必須為static
同時,extren關鍵字還可以定義外部程序集別名,使得可以從單個程序集中引用同一組件的不同版本。
下面是一個改寫自MSDN上的簡單的例子,調用系統winmm.DLL播放wav文件:
//系統API的調用的聲明
[System.Runtime.InteropServices.DllImport("winmm.DLL", EntryPoint = "PlaySound", SetLastError = true)]
public static extern void PlaySound(string path,System.IntPtr hMod,PlaySoundFlags flags);
//調用該方法
string path = @“c:22.wav”;
try
{
PlaySound(path, new System.IntPtr(), PlaySoundFlags.SND_SYNC);
}
catch (Exception ex)
{
throw (ex);
}