extern 修饰符用于声明在外部实现的方法。当您使用互操作服务调用非托管代码时,extern 修饰符的常见用法是与 DllImport 属性一起使用。在这种情况下,方法也必须声明为 static 的,如下面的例子所示:
[ DllImport ( "avifil32.dll" ) ]
private static extern void AVIFileInit ( );
extern 关键字还可以定义外部程序集别名,这样就可以从单个程序集内引用同一组件的不同版本。
同时使用 abstract 修饰符和 extern 修饰符修饰同一成员是错误的。使用 extern 修饰符意味着该方法是在 C# 代码外部实现的,而使用 abstract 修饰符意味着该方法的实现不在类中提供。
与 C++ 相比,extern 关键字在 C# 中的使用更为有限。
自定义的消息框
在这个例子中,程序从用户那里接收一个字符串,并将其显示在一个消息框中。该程序使用从 User32 . dll 库导入的 MessageBox 方法。
internal class Program
{
[DllImport ( "User32.dll" , CharSet = CharSet . Unicode )]
public static extern int MessageBox ( IntPtr h , string XX , string BT , int LX );
static int Main ( string [ ] args )
{
string? XiaoXi;
Console . Write ( "请输入你的消息:" );
XiaoXi = Console . ReadLine ( );
if ( XiaoXi != null )
{
return MessageBox ( ( IntPtr ) 0 , XiaoXi , "消息框" , 0 );
}
else
{
return 0;
}
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。