【发布时间】:2013-11-18 19:59:58
【问题描述】:
这里是高级问题:
我今天花了很多时间自学基本的高级概念,例如 API、静态和动态库、DLL 和 C# 中的编组。获得所有这些知识使我想到了一个看似非常基本的问题,并且可能表明我对这些概念的理解存在漏洞:
我所知道的:
- DLL 可能包含类,而这些类又包含各种类成员,例如方法和字段,其中一些我可能希望在我的程序中使用
- 在 C# 中,我们在代码顶部使用关键字“using”来定义我们的命名空间 想加入我们的计划
我没有得到什么:
我的印象是实际的方法是在 DLL 中定义的。当我给它们的只是一个命名空间时,我的程序如何找到在 DLL 中定义的实际函数?对我来说,在顶部使用“使用 XYZ.dll”而不是“使用 XYZ_namespace”似乎更直观。
非常感谢您帮助我填补这里的空白。
编辑:将帖子修改为特定于 C#。
编辑 2:对于其他想知道他们的 C# 应用程序如何真正获得通过“使用 namespaceX”提供的类型的人来说,这是一个很好的资源(除了下面的有用帖子):@987654321 @。
基本上,您要使用的类型位于库中,您必须将 Visual Studio 设置为引用这些库,以便在您的代码中“使用”其命名空间。
【问题讨论】:
-
C#:dll 或 exe 是一个程序集。一个程序集可以在任意数量的命名空间中具有内部类和函数供其使用(内部限制对同一程序集的访问)。命名空间是包含类的内容,也是您处理它们的方式。程序集引用是基于每个项目的,而命名空间引用是每个文件的。
-
这个问题到处都是。命名空间与 DLL。包括与使用。如何在 C++ 与 C# 中定义方法。程序集与 DLL。一般而言,C++(托管和非托管)与 C# 之间存在许多差异。似乎有很多答案和详细说明。投票结束。我建议您一次只专注于一种语言。
-
@P.Brian.Mackey 如果不清楚,我会将我的帖子修改为特定于 C#。不过,对于其他一些语言,这个问题仍然是一样的。使用 C# 语法:当我想要掌握的方法实际上驻留在 DLL 中时,“使用”命名空间有何意义。