Bagikan melalui


extern (Referensi C#)

Pengubah extern digunakan untuk mendeklarasikan metode yang diimplementasikan secara eksternal. Penggunaan umum pengubah extern adalah dengan atribut DllImport saat Anda menggunakan layanan Interop untuk memanggil kode yang tidak dikelola. Dalam hal ini, metode juga harus dinyatakan sebagai static, seperti yang ditunjukkan dalam contoh berikut:

[DllImport("avifil32.dll")]
private static extern void AVIFileInit();

Kata kunci extern juga dapat menentukan alias rakitan eksternal, yang memungkinkan untuk mereferensikan versi lain dari komponen yang sama dari dalam satu rakitan. Untuk mengetahui informasi selengkapnya, lihat alias ekstern.

Merupakan suatu kesalahan untuk menggunakan abstract dan pengubah extern bersama-sama untuk memodifikasi anggota yang sama. Penggunaan pengubah extern berarti bahwa metode diimplementasikan di luar kode C#, sedangkan penggunaan pengubah abstract berarti bahwa implementasi metode tidak disediakan dalam kelas.

Kata kunci extern memiliki penggunaan yang lebih terbatas dalam C# daripada di C++. Untuk membandingkan kata kunci C# dengan kata kunci C++, lihat Menggunakan ekstern untuk Menentukan Tautan di Referensi Bahasa C++.

Contoh 1

Dalam contoh ini, program menerima string dari pengguna dan menampilkannya di dalam kotak pesan. Program ini menggunakan metode MessageBox yang diimpor dari pustaka 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);
    }
}

Contoh 2

Contoh ini mengilustrasikan program C# yang memanggil ke pustaka C (DLL asli).

  1. Buat file C berikut dan beri nama cmdll.c:

    // cmdll.c
    // Compile with: -LD
    int __declspec(dllexport) SampleMethod(int i)
    {
      return i*10;
    }
    
  2. Buka jendela Perintah Alat Asli Visual Studio x64 (atau x32) dari direktori penginstalan Visual Studio dan kompilasi file cmdll.c dengan mengetik cl -LD cmdll.c pada perintah.

  3. Di direktori yang sama, buat file C# berikut dan beri nama cm.cs:

    // 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));
        }
    }
    
  4. Buka jendela Perintah Alat Asli Visual Studio x64 (atau x32) dari direktori penginstalan Visual Studio dan kompilasi file cm.cs dengan mengetik:

    csc cm.cs (untuk perintah x64) —atau— csc -platform:x86 cm.cs (untuk perintah x32)

    Ini akan membuat file yang dapat dieksekusi cm.exe.

  5. Jalankan cm.exe. Metode SampleMethod meneruskan nilai 5 ke file DLL, yang mengembalikan nilai yang dikalikan dengan 10. Contoh ini menghasilkan output berikut:

    SampleMethod() returns 50.
    

Spesifikasi bahasa C#

Untuk informasi selengkapnya, lihat Spesifikasi Bahasa C#. Spesifikasi bahasa adalah sumber definitif untuk sintaks dan penggunaan C#.

Lihat juga