c# - Why does '+' + a short convert to 44 -
i have line of code looks this:
myobject.phonenumber = '+' + thephoneprefix + thebiznumber; basically, i'm creating phone number in e164 format , assign string string property of object. thephoneprefix short holds international phone prefix , thebiznumber string holds phone number digits.
why didn't compiler bug when concatenating short in string in first place? , why '+' + 1 equal 44?? pretty hard bug track because there no compile error , 44 phone prefix uk "looked" working because client-side code saw uk number. why 44?
thanks.

why didn't compiler bug when concatenating short in string in first place?
string concatenation using + sign internally calls string.concat, internally calls tostring on each parameter. hence no error.
why '+' + 1
you doing character/numeric arithmetic. 43 being value of + , short/int 1 44.
because of operator + associativity left right first character/numeric addition , string concatenation.
so like:
myobject.phonenumber = ('+' + thephoneprefix) + thebiznumber; you can use "+" mark string or explicitly call string.concat like:
var result = string.concat('+', thephoneprefix, thebiznumber);
Comments
Post a Comment