小编Joh*_*Doe的帖子

String.Concat(Object)的目的而不是String.Concat(String)

使用String.Concat(Object)而不是String.Concat(String)在C#中的目的是什么?为什么不使用隐式调用Object.ToString()而不是传递object自己也可能导致拳击发生?

Int32 i = 5;
String s = "i = ";

// Boxing happens, ToString() is called inside
Console.WriteLine(s + i);
// Why compiler doesn't call ToString() implicitly?
Console.WriteLine(s + i.ToString());
Run Code Online (Sandbox Code Playgroud)

给我们以下IL.

.method private hidebysig static void  MyDemo() cil managed
{
    // Code size       47 (0x2f)
    .maxstack  2
    .locals init ([0] int32 i, [1] string s)
    IL_0000:  nop
    IL_0001:  ldc.i4.5
    IL_0002:  stloc.0
    IL_0003:  ldstr      "i = "
    IL_0008:  stloc.1
    IL_0009:  ldloc.1
    IL_000a: …
Run Code Online (Sandbox Code Playgroud)

.net c# string clr boxing

8
推荐指数
1
解决办法
77
查看次数

标签 统计

.net ×1

boxing ×1

c# ×1

clr ×1

string ×1