c# - 字符串别名在没有 System.String 的情况下工作,但 String 不工作

标签 c# asp.net .net string

今天我遇到了一个奇怪的困惑。尽管我在这篇文章中阅读了 C# 中字符串和字符串之间的区别:What is the difference between String and string in C#? .但是当我尝试在不使用命名空间 System 的情况下使用带有大写字母的 String 时,它无法被识别。喜欢

这段代码有效,

using System;

String s = "";

但是如果不使用 System,它会报错。

而带有小写字母的 string 使用和不使用 System 命名空间。

如果 String 和 string 是相同的东西,那么为什么一个只适用于它的命名空间,而另一个也适用于和不适用命名空间。

最佳答案

string 是一个 C# 构造,它在编译期间翻译System.String

每个 C# 程序默认有:

using string = System.String;
using char = System.Char;
using int = System.Int32;
using double = System.Double;

System.String 是类。如果不能访问 System 命名空间,则不能使用 String 类型(因此,要么完全限定为 System.String,要么使用using System; 指令)。

关于c# - 字符串别名在没有 System.String 的情况下工作,但 String 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12987315/

相关文章:

c# - 检测一条线(具有多个点)是否是单独的,或者是否连接到另一条线

c# - 是否可以将自定义结构序列化为 xml 属性?

c# - 混淆 C# 枚举和显式转换

c# - 文件上传asp.net

javascript - Google Map Autocomplete API 不添加地址选项

c# - 检测符号链接(symbolic link)、连接点、挂载点和硬链接(hard link)

c# - MVCGrid.NET - 如何重新加载网格?

c# - 包含 silverlight 控件的母版页

ASP.Net machinekey、validationkey 和decryptionkey - key 长度

c# - 如果隐式已在 C# 中重载,则重载显式运算符是否有好处?