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

我是一名新手程序员,谁能清楚地说出C#中头文件和命名空间的用法?

因为在C ++中我使用******.h文件来读取库函数。 当我在C#中看到一些示例程序时,他们失踪了,有人可以告诉我为什么吗?

我正在使用C#为机械CAD软件开发自定义工具,每当我使用适当的函数打开文件(CAD文件)时,编译器都会给我一个错误,指出我提供的函数名称不可用于上下文。 这里的语境是什么意思?

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

我使用命名空间在Visual Basic中using NXopen ,还不够吗? 我是否还需要提供该头文件? 如果是这样的话? 请帮助我。

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

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

  1. 在Visual Studio中启动新项目。 (无论什么类型,WinForms或控制台)
  2. 右键单击该项目并添加新类。
  3. 在主课堂笔记中,您可以看到刚刚添加的新课程,而无需添加任何标题。

怎么做? 只需在两个类中使用相同的命名空间即可。 .NET引擎非常智能,可以将所有这些类链接在一起。

现在,当谈到外部代码意味着代码坐在不同的DLL文件中时,技巧是添加对该DLL的引用(在Studio中 – >右击项目 – >添加引用 – >浏览)然后你需要指定你将通过在顶部添加using语句来使用该DLL:

 using ExternalDllName.ExternalNamespace; 

就是这样。 与C ++不同,您不需要拥有.h文件,因为.NET会自动搜索引用的DLL文件以进行匹配。

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

你在项目中引用了所需的assembly吗? 另外请注意,在C#中没有“函数”这样的东西,只有类方法(这意味着你必须在调用时指定对象或静态类)。

另外: C#程序的一般结构

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

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