c# - Does casting null to string cause boxing? -


imagine code this:

var str = (string)null; 

does differs from:

string str; 

or:

string str = null; 

does first code cause boxing of null value, or rather resolved @ compiler time string?

let's take question , pick apart.

will code in question cause boxing?

no, not.

this not because of 3 statements operate differently (there differences though, more below), boxing not concept occurs when using strings.

boxing occurs when take value type , wrap object. string reference type, , there never boxing involved it.

so boxing out, rest, 3 statements equal?

these 2 same:

var str = (string)null; string str = null; 

the third 1 (second 1 in order of question though) different in sense declares str identifier of type string, not initialize null.

however, if field declaration of class, same since fields initialized defaults / zeroes when object constructed, , initialized null anyway.

if, on other hand, local variable, have uninitialized variable. judging fact write var ..., illegal in terms of fields, more correct question.


Comments

Popular posts from this blog

matlab - "Contour not rendered for non-finite ZData" -

delphi - Indy UDP Read Contents of Adata -

javascript - Any ideas when Firefox is likely to implement lengthAdjust and textLength? -