首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么C#没有头文件?名称空间会处理所有的事情吗?

为什么C#没有头文件?名称空间会处理所有的事情吗?
EN

Stack Overflow用户
提问于 2012-08-05 15:44:31
回答 3查看 67.4K关注 0票数 30

我是一个新手程序员,有谁能清楚地告诉我C#中头文件和名称空间的用法吗?

因为在C++中,我使用******.h文件来读取库函数。当我在C#中看到一些他们丢失的示例程序时,谁能告诉我为什么?

我正在使用C#为一个机械CAD软件开发定制的工具,每当我使用适当的函数打开文件(CAD文件)时,编译器给我一个错误,说明我提供的函数名在上下文中不可用。在这里,上下文是什么意思?

当我打开该CAD应用程序的帮助文件时,负责打开该文件的函数在一个名为uf_part.h的头文件下被提及。但是有一个名为NXopen的名称空间。

我在Visual Basic中使用了名称空间作为using NXopen,这还不够吗?我也需要提供那个头文件吗?如果是这样的话,是怎么做的?请帮帮我。

EN

回答 3

Stack Overflow用户

发布于 2012-08-05 15:57:18

C#更加“对程序员友好”。当处理同一项目的文件时,它将根据命名空间在所有项目文件中查找匹配项,而不是每次都手动指定“头文件”。

要了解这一点,请执行以下步骤:

  1. 在Visual Studio中启动新项目。

如何做到这一点?只需对两个类使用相同的名称空间即可。.NET引擎足够智能,可以将所有这些类链接在一起。

现在,当外部代码意味着代码位于不同的DLL文件中时,诀窍是添加对该DLL的引用(在Studio中-->右键单击项目-->添加引用-->浏览),然后您需要通过在顶部添加一条using语句来指定要使用该DLL:

代码语言:javascript
复制
using ExternalDllName.ExternalNamespace;

事情就是这样。与C++不同的是,你不需要.h文件,因为.NET会自动在引用的DLL文件中搜索匹配项。

票数 30
EN

Stack Overflow用户

发布于 2012-08-05 15:48:00

在.net中没有头文件这样的东西,因为所有需要的元数据都包含在引用的程序集中。

您是否在项目中引用了所需的程序集?还请记住,在C#中没有“函数”这样的东西,只有类方法(这意味着你必须在调用中指定对象或静态类)。

还有:General Structure of a C# Program

票数 12
EN

Stack Overflow用户

发布于 2012-08-05 15:58:30

现代语言(如C#或Java )的编译器在编译后的文件中存储有关它们所包含的类和方法的信息,该信息可用于检查从一个源文件到另一个源文件或对库类进行的调用的正确性。

当C语言发明时,磁盘空间、内存和CPU能力是宝贵的资源,这种方法是不可能的。引入头文件是为了允许编译器检查不同的源文件是否符合相同的接口。当C++发明时,上面描述的方法可能是可能的,但我猜它是出于兼容性原因而选择使用C语言的。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11814771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档