大家怎么看??

koukoujiayi 2009-01-06 03:48:48
刚才发了一个升猩散分贴子,问了关于习惯问题,
1. string a;
2. string a = null;
3. string a = "";
4. string a = string.Empty;
觉得这四种方式是有些微差别的,但网友zpcoder认为无差别,大家怎么认为??

zpcoder回复贴子:
呵呵~~~,事实上一模一样的。
string.Empty 只不是“所谓的推荐”
你们可以看以下结果:

.method public hidebysig specialname rtspecialname
instance void .ctor() cil managed
{
// 代码大小 37 (0x25)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldstr ""
IL_0006: stfld string a::bbb
IL_000b: ldarg.0
IL_000c: ldnull
IL_000d: stfld string a::ccc
IL_0012: ldarg.0
IL_0013: ldsfld string [mscorlib]System.String::Empty
IL_0018: stfld string a::ddd
IL_001d: ldarg.0
IL_001e: call instance void [mscorlib]System.Object::.ctor()
IL_0023: nop
IL_0024: ret
} // end of method a::.ctor
...全文
225 30 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
我姓区不姓区 2009-01-06
  • 打赏
  • 举报
回复
1和2是一样的
3和4是一样的
mengxj85 2009-01-06
  • 打赏
  • 举报
回复
学习
bj890 2009-01-06
  • 打赏
  • 举报
回复
关注
csgdseed 2009-01-06
  • 打赏
  • 举报
回复
学习
Ny-6000 2009-01-06
  • 打赏
  • 举报
回复
一种分配了空间,一种没分配。

至于别的问题,都是由于这两种差别引起的

空心兜兜 2009-01-06
  • 打赏
  • 举报
回复
值得学习
HBJMSHOP 2009-01-06
  • 打赏
  • 举报
回复
大家都是砖家啊
bj890 2009-01-06
  • 打赏
  • 举报
回复
xuexi
greatverve 2009-01-06
  • 打赏
  • 举报
回复
现在没心情谈这细节。顶。
设备管理系统 2009-01-06
  • 打赏
  • 举报
回复
1. string a;
2. string a = null;
3. string a = "";
4. string a = string.Empty;
这些都是老话题了...
那种方法判断字符串为空效率最高? 在1.1的时候讨论的最多,答案肯定是str.length>0
自从2.0出来后就很少讨论了,因为2.0有一个新的方法:string.IsNullOrEmpty()
hongmaohouzi 2009-01-06
  • 打赏
  • 举报
回复
学习!
HDNGO 2009-01-06
  • 打赏
  • 举报
回复
4. string a = string.Empty;

比较习惯用这个~
xian_yun80 2009-01-06
  • 打赏
  • 举报
回复
学习
glt3260053 2009-01-06
  • 打赏
  • 举报
回复
up
dengchenlu 2009-01-06
  • 打赏
  • 举报
回复
基本都是用的string a = "";吧

以前看过一个判断
判断string a = "";
if(a == "")
{}

if(a == string.Empty)
{}
这两个的差别
下面的运行效率高点
hongqi162 2009-01-06
  • 打赏
  • 举报
回复
String.Empty 是一个静态只读字段(static readonly field),他在运行时进行初始化。
燕飞7 2009-01-06
  • 打赏
  • 举报
回复
帮顶
zhuanshen712 2009-01-06
  • 打赏
  • 举报
回复
10楼是我吗?
燕飞7 2009-01-06
  • 打赏
  • 举报
回复
帮顶,学习~~
amanizty 2009-01-06
  • 打赏
  • 举报
回复
学习~up
加载更多回复(10)
三?原代?MidasDemo安??助 作者: 老?(aleyn.wu) 日期: 2004-05-26 感?(Jackey, llyygg, 斜?,??舞和其它?友)的??和?助 有???到 QQ群?1005454[煮茶待英雄] http://www.e-midas.cn上?? 本程序在Delphi 6.0 + SQL2000 下通?, 在Delpphi 7.0下 安?控件可能有些??. 本程序所需的所有控件,有些有原代?,有些??有,???. 目?清?: VCL_D6 Delphi 6.0 所需控件目? VCL_D7 Delphi 7.0 所需控件目? COMMON 「服??」和「???」共用目? Server 「服??」原代?目? RuleDLL 「???」原代?目? Demo 「客?端」示例目? 文件清?: swServer2.exe 「服??」主程序 swServer2.ini 「服??」主程序配置文件 swDemo.dll 「??」DLL示例 swMMC.exe 「??」DLL??管理程序 swMMC.ini 「??」DLL??管理程序配置文件 dmDefault.dll 系?缺省「??」,一定要有 sqlDesigner.exe 「SQL?句」管理程序 sqlDesigner.ini 「SQL?句」管理程序配置文件 Demo1.exe 「客?端」示例 控件方面: (1).先打??安?hmTools.dpk (2).再打??安?hmIdb60.dpk ?目方面: (1).先??dmDefault.prj (2).再??dmDemo.prj (3).再??swServer2.prj (4).最後??demo1.prj ??方面: ?把sql.mdb?入到SQL2000里的pubs(Database) ?行方面: (1).先?行swServer2.exe (2).?行scktsrvr.exe (在Delphi目?) (3).?行swMMC.exe ,看看「服??」是否已???了所有的「??(DLL)」 (4).?行Demo1.exe 注意事?: (1).必?先修改所有的INI文件,以?合你的?? (2).必?先?行swServer2.exe,才可以修改Demo1.prj和?行Demo1.exe (3).如果需要查看SQL?句,??行sqlDesigner.exe

62,248

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧