c# - C#语言预定义了哪些命名空间?

标签 c#

我试图找出在 C# 中预定义了哪些命名空间(不是程序集)。

开始编辑

定义术语预定义

术语预定义(或预定义)在 C# 语言规范中使用了 100 多次。不幸的是,规范从未给出该术语的正式定义。对我来说,如果语言规范定义(即指定)它并保证它将存在,那么它就是预定义的。

结束编辑

例如,我创建了以下程序。

class Program
{
    static void Main(string[] args)
    {
        var strings = new System.Collections.Generic.List<string> { 
            "Foo",
            "Bar"
        };
        strings.ForEach((s) =>
        {
            System.Console.WriteLine(s);
        });
        System.Console.ReadKey();
    }
}

这是它的 .csproj 文件。

<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <OutputPath>bin\</OutputPath>
  </PropertyGroup>
  <ItemGroup>
    <Compile Include="Program.cs" />
  </ItemGroup>
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

Visual Studio 根本不参与。上面的项目只有两个文件。它在命令行上使用 msbuild 构建并作为控制台应用程序运行。

即使我没有引用任何程序集,System.ConsoleSystem.Collections.List<T>类(class)可用。所以,我假设 SystemSystem.Collections命名空间是用 C# 语言预定义的。

我一直在阅读 C# 语言规范以确定预定义了哪些命名空间。它确实列出了一些预定义的类型、转换和运算符。它没有列出所有预定义的命名空间。

C#语言预定义了哪些命名空间?

编辑

Xanatos 提供 code that I placed into a fiddle .它表明 mscorlib 包含 56 个命名空间。

最佳答案

您正在使用 csc.exe 编译器。基类库中的所有预定义类型都位于文件mscorlib.dll中,编译时默认引用该文件。

因此,您的问题是该 dll 中定义的内容。 从这里开始:

http://referencesource.microsoft.com/#mscorlib,namespaces

关于c# - C#语言预定义了哪些命名空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29495547/

相关文章:

c# - 将 SQL 保留在存储过程与代码中的优缺点是什么

c# - 随机代码无法正常工作

c# - 加载大量前期数据。 。同步或异步。

c# - 是否有在后台线程上初始化对象的通用模式?

c# - 使用 html5 c# asp 从数据库中播放存储为字符串的视频

c# - RESTful 服务问题

c# - 从实例方法调用静态方法线程安全吗?

c# - 多态性、泛型和匿名类型 C#

c# - 是否可以从 IntPtr + 大小创建托管字节数组?

c# - 如何使用 Regex 将十进制值中的句点转换为对 URL 更友好的新闻报道