Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Modifieraren extern används för att deklarera en metod som implementeras externt. En vanlig användning av extern modifieraren är med DllImport attributet när du använder Interop-tjänster för att anropa till ohanterad kod. I det här fallet måste metoden också deklareras som static, enligt följande exempel:
[DllImport("avifil32.dll")]
private static extern void AVIFileInit();
Nyckelordet extern kan också definiera ett externt sammansättningsalias, vilket gör det möjligt att referera till olika versioner av samma komponent inifrån en enda sammansättning. Mer information finns i externt alias.
Det är ett fel att använda abstrakta  och extern modifierare tillsammans för att ändra samma medlem. 
              extern Att använda modifieraren innebär att metoden implementeras utanför C#-koden, medan modifieraren abstract innebär att metodimplementeringen inte tillhandahålls i klassen.
Det externa nyckelordet har mer begränsade användningsområden i C# än i C++. Om du vill jämföra nyckelordet C# med nyckelordet C++ läser du Använda extern för att ange länkning i C++-språkreferensen.
Exempel 1
I det här exemplet tar programmet emot en sträng från användaren och visar den i en meddelanderuta. Programmet använder den metod som MessageBox importerats från biblioteket User32.dll.
//using System.Runtime.InteropServices;
class ExternTest
{
    [DllImport("User32.dll", CharSet=CharSet.Unicode)]
    public static extern int MessageBox(IntPtr h, string m, string c, int type);
    static int Main()
    {
        string myString;
        Console.Write("Enter your message: ");
        myString = Console.ReadLine();
        return MessageBox((IntPtr)0, myString, "My Message Box", 0);
    }
}
Exempel 2
Det här exemplet illustrerar ett C#-program som anropar till ett C-bibliotek (en intern DLL).
- Skapa följande C-fil och ge den - cmdll.cnamnet :- // cmdll.c // Compile with: -LD int __declspec(dllexport) SampleMethod(int i) { return i*10; }
- Öppna ett Visual Studio x64-fönster (eller x32) native tools command prompt från Visual Studio-installationskatalogen - cmdll.coch kompilera filen genom att skriva cl -LD cmdll.c i kommandotolken.
- Skapa följande C#-fil i samma katalog och ge den - cm.csnamnet :- // cm.cs using System; using System.Runtime.InteropServices; public class MainClass { [DllImport("Cmdll.dll")] public static extern int SampleMethod(int x); static void Main() { Console.WriteLine("SampleMethod() returns {0}.", SampleMethod(5)); } }
- Öppna ett visual Studio x64 -fönster (eller x32) med kommandotolken från Visual Studio-installationskatalogen - cm.csoch kompilera filen genom att skriva:- csc cm.cs (för kommandotolken x64) – eller – csc -platform:x86 cm.cs (för kommandotolken x32) - Då skapas den körbara filen - cm.exe.
- Kör - cm.exe. Metoden- SampleMethodskickar värdet 5 till DLL-filen, som returnerar värdet multiplicerat med 10. Programmet genererar följande utdata:- SampleMethod() returns 50.
Språkspecifikation för C#
Mer information finns i C#-språkspecifikationen. Språkspecifikationen är den slutgiltiga källan för C#-syntax och -användning.