gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 17:40:15 25 4
gpt4 key购买 nike

我试图找出在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com