c# - 如何在不使用系统命名空间的情况下使用字符串

标签 c# asp.net .net string

谁能告诉我,我没有使用系统命名空间,但字符串可以用作字符串 hello = "Hello";并且不会抛出任何编译时错误

但是,如果我写大写字符串,它是不可用的。

sealed class SealedClass
{
    public void PrintSealed()
    {
        string hello = "Hello";
    }
}

最佳答案

您不需要 using 关键字来使用库的“片段”。 using 关键字只是为了更容易引用 namespace 内的类型。

当你写作时

using System;

.... ...

String hello = "Hello";

编译器将其替换为

System.String hello = "Hello";

但你可以直接写

System.String hello = "Hello";

没有使用系统。但这是一种痛苦:-)

然后 stringSystem.String 的别名,所以当你写 string 时,C# 编译器将它替换为 System .String ( MSDN ).

请注意,要使用库,您仍然必须引用它,但您不是从代码中引用它,而是从项目中引用它,执行 Add Referencemscorlib 库(程序集)被自动引用(并且您无法删除引用)

这与 Microsoft Visual C/C++ 略有不同,后者通常是这样的:

#pragma comment(lib, "somelibrary")

这是链接器包含 .lib 文件(库)的指令。在 Visual C/C++ 中,通常不需要显式包含库,只需包含包含该命令的 header ,链接器就会自动神奇地链接该库。

关于c# - 如何在不使用系统命名空间的情况下使用字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30543664/

相关文章:

c# - 事件处理程序抛出对象引用错误

c# - 为灰度图像着色

javascript - 使用 ajax 和 jQuery 的服务器端分页

asp.net - 与直接 jquery ajax 调用相比,scriptmanager 有哪些优势?

.net - 如何在可移植类库中使用 MEF?

c# - 实现线程安全单例模式的最安全/正确方法是什么?

javascript - 始终在屏幕上显示表格的第一行和第一列

.net - .net 中 Winform 的面板切换器自定义控件?

c# - 检查是否给出完整路径

c# - 我要如何在C#中统一创建音频可视化器