Object.ReferenceEquals("1", "1").ToString
är sant.
men...
Object.ReferenceEquals(1, 1).ToString
är falskt, varför?
2 svar · 390 visningar · startad av Travoni
Object.ReferenceEquals("1", "1").ToString
är sant.
men...
Object.ReferenceEquals(1, 1).ToString
är falskt, varför?
Object.Equals() verkar fungera som önskat.
Anledningen är att ReferenceEquals tar emot två objekt, och Int32 är en värdetyp vilket innebär att dina intar måste boxas, dvs slås in i ett objekt, innan de kan skickas som argument till ReferenceEquals. Ditt lilla experiment visar att uppenbarligen skapas två olika omslagsobjekt. (Strängar, däremot, poolas när det finns flera likadana, därför funkar det första anropet.)