Esta documentação foi arquivada e não está sendo atualizada.

externo (C# Referência)

The modificador extern Is Used to declare a método that is implemented externally.A comum Use of the modificador extern is with the atributo DllImport when using Serviços Interop to chamar em código não gerenciado; In this maiúscminúsc, the método must also be Declared as static, as shown in the seguinte exemplo:

[DllImport("avifil32.dll")]
private static extern void AVIFileInit();
ObservaçãoObservação:

The palavra-chave extern also can Definir an externo assembly alias, making it possible to Referência different Versions of the same componente from within a Simples assembly.Para obter mais informações, consulte externo alias (C# Referência).

It is an Error to use the abstract (referência C#)  and modifiers extern together to Modificar the same membro.Using the modificador extern means that the método is implemented outside the Código C#, WHILE Using the modificador abstract means that the implementação método não é provided in the classe.

ObservaçãoObservação:

The palavra-chave extern Is Mais Limited Em Uso than in C++.To compare with the palavra-chave C++, see Using externo to Specify Linkage in the Referência da Idioma C++.

Neste exemplo, o programa recebe uma seqüência do usuário e exibe-dentro de uma caixa de mensagem.The programa uses the método MessageBox Imported de the biblioteca User32.dll.

using System;
using System.Runtime.InteropServices;
class MainClass 
{
   [DllImport("User32.dll")]
   public static extern int MessageBox(int h, string m, string c, int type);

   static int Main() 
   {
      string myString; 
      Console.Write("Enter your message: ");
      myString = Console.ReadLine();
      return MessageBox(0, myString, "My Message Box", 0);
   }
}

This exemplo creates a DLL de a C programa that is invoked de within the programa C# in the Avançar exemplo.

// cmdll.c
// compile with: /LD
int __declspec(dllexport) SampleMethod(int i)
{
   return i*10;
}

This exemplo uses Two Arquivos, CM.cs and Cmdll.c, to demonstrar extern.The arquivo C is the externo que DLL Criado in that is invoked de within the programa C# Example 2.

// 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));
   }
}
SampleMethod() returns 50.

To Compilação the projeto:

  • Compilar Cmdll.c para um DLL usando o linha de comando Visual C++:

    cl /LD Cmdll.c

  • Compilar CM.cs usando o linha de comando:

    csc CM.cs

This will Criar the arquivo executável CM.exe.Quando você executar este programa, será SampleMethod transmitir o valor 5 para o arquivo DLL, que retorna o valor multiplicado por 10.

Para mais informações, consulte as seguintes seções em Especificação da Linguagem C#:

  • Métodos 10.5.7 Externo

Mostrar: