C# 我想什么时候使用extern?

C# 我想什么时候使用extern?,c#,C#,在Winforms中编写客户端应用程序时,我遇到了在文本框中放置按钮而不干扰文本框本身视图的问题 在这个答案中,我注意到了修饰符,这是我以前在代码中没有看到的 发件人: “extern修饰符用于声明已实现的方法 外部。外部修饰符的常见用法是DllImport 使用互操作服务调用非托管服务时的属性 代码。” 这正是我在相关问题中看到它的用法。我不明白为什么需要为此调用user32外部函数,但这可能应该在单独的问题中提出 所以我的问题是,extern什么时候是我应该使用的修饰语?为什么它比简单地将d

在Winforms中编写客户端应用程序时,我遇到了在文本框中放置按钮而不干扰文本框本身视图的问题

在这个答案中,我注意到了修饰符,这是我以前在代码中没有看到的

发件人:

“extern修饰符用于声明已实现的方法 外部。外部修饰符的常见用法是DllImport 使用互操作服务调用非托管服务时的属性 代码。”

这正是我在相关问题中看到它的用法。我不明白为什么需要为此调用user32外部函数,但这可能应该在单独的问题中提出


所以我的问题是,extern什么时候是我应该使用的修饰语?为什么它比简单地将dll添加到引用中并直接使用要好?

不要将非托管dll与.NET程序集混淆。仅仅因为扩展名是
.dll
,并不意味着您可以添加对它的引用

非常简单:如果要在非托管DLL中调用C函数,可以使用
[DllImport(…)]
静态外部
修饰符。将其添加为引用将不起作用,因为它不是.NET程序集


如果要调用托管.NET程序集中的某个方法,可以将其添加为引用,然后可以使用C#代码直接调用该方法。

如果该库不是.NET dll怎么办?这更有意义。我认为我看到的将其与
user32.dll
一起使用的例子让我很反感。谢谢