当前位置:  开发笔记 > 编程语言 > 正文

C# - 这个声明的字符串是否被视为const?

如何解决《C#-这个声明的字符串是否被视为const?》经验,为你挑选了1个好方法。

帮助我在这里解决争论.

这是:

SqlCommand cmd = new SqlCommand( "sql cmd", conn);

处理与此完全相同:

const string s = "sql cmd";
SqlCommand cmd = new SqlCommand( s, conn);

IE浏览器.如果我明确声明字符串s是const,它会有所作为.

而且,如果没有以同样的方式对待,为什么不呢?



1> Jon Skeet..:

在后面的代码片段中,并不是字符串是const - 它是变量是const.这与C++中的const不完全相同.(字符串在.NET 中总是不可变的.)

是的,两个片段做同样的事情.唯一的区别是,在第一种形式中,你也会有一个元数据条目s,如果变量是在类型级别声明的(而不是局部变量),那么其他方法也可以使用它.当然,由于字符串实习,如果你在其他地方使用"sql cmd",你仍然只在内存中有一个字符串对象 ...但是如果你看一下带有反射的类型,你会发现const作为一个字段在第二个片段的元数据如果它被声明为常量字段,如果它只是一个局部变量,如果你构建一个,它将在PDB文件中.

推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有