这里有一个高级问题:
今天我花了很多时间自学基本的高级概念,例如 API、静态和动态库、DLL 以及 C# 中的编组。获得所有这些知识让我想到了一个看起来非常基本的问题,并且可能表明我对这些概念的理解存在漏洞:
我知道的:
- DLL 可能包含类,这些类又包含各种类成员,例如方法和字段,我可能想在程序中使用其中的一些成员
- 在 C# 中,我们在代码顶部使用关键字“using”来定义我们的命名空间
想要加入我们的计划
我没有得到什么:
我的印象是实际的方法是在 DLL 中定义的。当我给它们的只是命名空间时,我的程序如何找到 DLL 中定义的实际函数?对我来说,将“using XYZ.dll”放在顶部似乎比“using XYZ_namespace”更直观。
非常感谢您帮助我填补这里的空白。
编辑:修改帖子以特定于 C#。
编辑 2:对于其他想知道他们的 C# 应用程序如何实际获取通过“using namespaceX”提供的类型的人来说,这是一个很好的资源(除了下面有用的帖子之外):http://broadcast.oreilly.com/2010/07/understanding-c-namespaces-and.html http://broadcast.oreilly.com/2010/07/understanding-c-namespaces-and.html.
基本上,您想要使用的类型驻留在库中,并且您必须将 Visual Studio 设置为引用这些库,以便可以在代码中“使用”其名称空间。
DLL 包含许多我们可能想要在我们的应用程序中使用的例程/方法
程式
部分正确。.Net
DLL 包含Classes http://msdn.microsoft.com/en-us/library/vstudio/x9afc042.aspx,这些类包含Members http://msdn.microsoft.com/en-us/library/vstudio/ms173113.aspx(字段、常量、方法、属性、事件、运算符、索引器)。
.Net 是严格的 OOP,它不允许代码“漂浮在地狱边缘”。一切都在类内部定义。
课程安排在命名空间 http://msdn.microsoft.com/en-us/library/z2kcy19k%28v=vs.90%29.aspx只是为了保持命名分离和组织。将命名空间视为包含一个或多个类的“文件夹”,并且可能在一个或多个程序集 (DLL) 中定义。
例如,里面的类System
命名空间在 2 个程序集 (DLL) 中定义:mscorlib.dll
and System.dll
.
同时,这两个程序集包含许多不同的命名空间,因此您可以将程序集与命名空间的关系视为多对多。
当你放一个using
指令位于 C# 代码文件的开头,您告诉编译器“我想使用在此定义的类 Namespace
, 无论他们来自哪个议会”。您将能够在所有程序集中使用此类命名空间中定义的所有类参考 http://msdn.microsoft.com/en-us/library/wkze6zky%28v=vs.90%29.aspx从当前项目中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)