рд╕реНрдЯреНрд░рд┐рдВрдЧ рдСрдкрд░реЗрдЯрд░ + рд╕рд░рд▓ рд╣реИ?

рдкрд░рд┐рдЪрдп



рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдореМрд▓рд┐рдХ рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ, рд╕рд╛рде рд╣реА рд╕рдВрдЦреНрдпрд╛рддреНрдордХ (рдЗрдВрдЯ, рд▓реЙрдиреНрдЧ, рдбрдмрд▓) рдФрд░ рд▓реЙрдЬрд┐рдХрд▓ (рдмреВрд▓)ред рдХрдо рд╕реЗ рдХрдо рдХрд┐рд╕реА рднреА рдЙрдкрдпреЛрдЧреА рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рдирд╛ рдХрдард┐рди рд╣реИ рдЬреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред



.NET рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкрд░, рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рдХрд╛рд░ рдХреЛ рдПрдХ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреНрд▓рд╛рд╕ рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рд╕реАрдПрд▓рдЖрд░ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рднрд╛рд╖рд╛ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЕрддреНрдпрдзрд┐рдХ рдПрдХреАрдХреГрдд рд╣реИ, рдФрд░ рд╕реА # рдХрдВрдкрд╛рдЗрд▓рд░ рд╕реЗ рднреА рд╕рдорд░реНрдерди рдкреНрд░рд╛рдкреНрдд рд╣реИред



рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рд╕рдВрдШрдирди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рдПрдХ рдРрд╕рд╛ рдСрдкрд░реЗрд╢рди рдЬреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рддрдиреА рдмрд╛рд░ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдкрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрдЪрд╛рд▓рдиред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рд╣рдо рдмрд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рд╕рднреА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдСрдкрд░реЗрдЯрд░ + рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рдЙрд╕рдХреА рдЕрдкрдиреА рд╕реВрдХреНрд╖реНрдорддрд╛рдПрдВ рд╣реИрдВред



рд╕реНрдЯреНрд░рд┐рдВрдЧ рдСрдкрд░реЗрдЯрд░ + рдХреЗ рд▓рд┐рдП рднрд╛рд╖рд╛ рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛



рд╕реА # рднрд╛рд╖рд╛ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рд▓рд┐рдП рддреАрди рдСрдкрд░реЗрдЯрд░ + рдЕрдзрд┐рднрд╛рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:



string operator + (string x, string y) string operator + (string x, object y) string operator + (object x, string y)
      
      





рдпрджрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рдорд╡рд░реНрддреА рдХреЗ рдСрдкрд░реЗрдВрдб рдореЗрдВ рд╕реЗ рдПрдХ рд╢реВрдиреНрдп рд╣реИ, рддреЛ рдПрдХ рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдиреНрдпрдерд╛, рдХреЛрдИ рднреА рддрд░реНрдХ рдЬреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд╣реАрдВ рд╣реИ, рдЙрд╕реЗ рд╡рд░реНрдЪреБрдЕрд▓ ToString рд╡рд┐рдзрд┐ рдХрд╣рдХрд░ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдбрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ ToString рд╡рд┐рдзрд┐ рд╢реВрдиреНрдп рд╣реЛ рдЬрд╛рддреА рд╣реИ, рддреЛ рдПрдХ рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдХрд╣рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХреЛ рдХрднреА рднреА рд╢реВрдиреНрдп рдирд╣реАрдВ рд▓реМрдЯрдирд╛ рдЪрд╛рд╣рд┐рдП ред



рдСрдкрд░реЗрдЯрд░ рдХрд╛ рд╡рд┐рд╡рд░рдг рдкрд░реНрдпрд╛рдкреНрдд рд╕реНрдкрд╖реНрдЯ рджрд┐рдЦрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдЧрд░ рд╣рдо рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╡рд░реНрдЧ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдХреЗрд╡рд▓ рджреЛ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреА рд╕реНрдкрд╖реНрдЯ рдкрд░рд┐рднрд╛рд╖рд╛ рдкрд╛рддреЗ рд╣реИрдВ == рдФрд░! =ред рдПрдХ рд╡рд╛рдЬрд┐рдм рд╕рд╡рд╛рд▓ рдпрд╣ рдЙрдарддрд╛ рд╣реИ рдХрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрдВрд╕реЗрдВрдЯреЗрд╢рди рдХреЗ рдкрд░реНрджреЗ рдХреЗ рдкреАрдЫреЗ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ? рдХрдВрдкрд╛рдЗрд▓рд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдСрдкрд░реЗрдЯрд░ + рдХреЛ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ?



рдЗрд╕ рд╕рд╡рд╛рд▓ рдХрд╛ рдЬрд╡рд╛рдм рдЗрддрдирд╛ рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рдерд╛ред рдЖрдкрдХреЛ рд╕реНрдЯреИрдЯрд┐рдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ.рдХреЛрдиреНрдХрдЯ рд╡рд┐рдзрд┐ рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред String.Concat рд╡рд┐рдзрд┐ - рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдПрдХ рдпрд╛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреЗ рдорд╛рдиреЛрдВ рдХреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╡рд░реНрдЧ рдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡реЛрдВ рдХреЗ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдЬреЛрдбрд╝рддреА рд╣реИред рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрдзрд┐рднрд╛рд░ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ:



 public static String Concat(String str0, String str1) public static String Concat(String str0, String str1, String str2) public static String Concat(String str0, String str1, String str2, String str3) public static String Concat(params String[] values) public static String Concat(IEnumerable<String> values) public static String Concat(Object arg0) public static String Concat(Object arg0, Object arg1) public static String Concat(Object arg0, Object arg1, Object arg2) public static String Concat(Object arg0, Object arg1, Object arg2, Object arg3, __arglist) public static String Concat<T>(IEnumerable<T> values)
      
      





рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА



рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣реИ = рдП + рдмреА, рдЬрд╣рд╛рдВ рдП рдФрд░ рдмреА рддрд╛рд░ рд╣реИрдВред рд╕рдВрдХрд▓рдХ рдЗрд╕реЗ рдХреЙрд▓ рдХреЛ рд╕реНрдЯреЗрдЯрд┐рдХ рдХреЙрдиреИрдЯ рд╡рд┐рдзрд┐ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд



 s = string.Concat(a, b)
      
      





рд╕реА # рдореЗрдВ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрдЪрд╛рд▓рди рдХреА рддрд░рд╣, рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рдорд╡рд░реНрддреА рдСрдкрд░реЗрд╢рди рдмрд╛рдПрдВ-рд╕рд╣рдпреЛрдЧреА рд╣реИред



рджреЛ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд╕рд╛рде, рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдЕрдзрд┐рдХ рд▓рд╛рдЗрдиреЗрдВ рд╣реИрдВ? рдСрдкрд░реЗрд╢рди рдХреА рдмрд╛рдИрдВ-рд╕рд╣рдХреНрд░рд┐рдпрд╛рд╢реАрд▓рддрд╛ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ s = a + b + c рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ



 s = string.Concat(string.Concat(a, b), c)
      
      





рд╣рд╛рд▓рд╛рдБрдХрд┐, рддреАрди рддрд░реНрдХреЛрдВ рдХреЛ рд▓реЗрдиреЗ рд╡рд╛рд▓реЗ рдЕрдзрд┐рднрд╛рд░ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рдЗрд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛



 s = string.Concat(a, b, c)
      
      





рдЪрд╛рд░ рд░реЗрдЦрд╛рдУрдВ рдХреЗ рдорд┐рд▓рди рд╕реЗ рд╕реНрдерд┐рддрд┐ рд╕рдорд╛рди рд╣реИред 5 рдпрд╛ рдЕрдзрд┐рдХ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ string.Concat (params string []] рдХрд╛ рдЕрдзрд┐рднрд╛рд░ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдХрд┐рд╕реА рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдЬреБрдбрд╝реЗ рдУрд╡рд░рд╣реЗрдб рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред



рдпрд╣ рднреА рдХрд╣рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рдВрдШрдирди рдСрдкрд░реЗрд╢рди рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╛рд╣рдЪрд░реНрдп рд╣реИ : рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рд╣рдо рдХрд┐рд╕ рдХреНрд░рдо рдореЗрдВ рддрд╛рд░реЛрдВ рдХреЛ рдорд┐рд▓рд╛рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЗ рд╕реНрдкрд╖реНрдЯ рд╕рдВрдХреЗрдд рдХреЗ рдмрд╛рд╡рдЬреВрдж рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ s = a + (b + c) рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИред



 s = (a + b) + c = string.Concat(a, b, c)
      
      





рдЙрдореНрдореАрдж рдХреЗ рдмрдЬрд╛рдп



 s = string.Concat(a, string.Concat(b, c))
      
      





рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЙрдкрд░реНрдпреБрдХреНрдд рдХреЛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП: рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рдВрдШрдирди рдСрдкрд░реЗрд╢рди рд╣рдореЗрд╢рд╛ рдмрд╛рдПрдВ рд╕реЗ рджрд╛рдПрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╕реНрдерд┐рд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдХреЙрдирдХрдЯ рд╡рд┐рдзрд┐ред



рд╢рд╛рдмреНрджрд┐рдХ рддрд╛рд░ рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рдХ рдЕрдиреБрдХреВрд▓рди



рд╕реА # рднрд╛рд╖рд╛ рд╕рдВрдХрд▓рдХ рдореЗрдВ рд╢рд╛рдмреНрджрд┐рдХ рддрд╛рд░ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реЗ рдЕрдиреБрдХреВрд▓рди рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ s = "a + +" b "+ c, рдСрдкрд░реЗрдЯрд░ рдХреА рдмрд╛рдИрдВ-рд╕рд╣рдХреНрд░рд┐рдпрд╛рд╢реАрд▓рддрд╛ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, s = (" a "+" b ") + c рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ



 s = string.Concat("ab", c)
      
      





рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдСрдкрд░реЗрд╢рди рдХреЗ рдмрд╛рдПрдВ-рд╕рдорд░реВрдкрддрд╛ рдХреЗ рдмрд╛рд╡рдЬреВрдж рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ s = c + "a" + "b" рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (s = (c + "a") + "b")



 s = string.Concat(c, "ab")
      
      





рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рд╢рд╛рдмреНрджрд┐рдХ рд░реВрдк рд╕реЗ рд╕реНрдерд┐рдд рд╣реИрдВ, рд╕рдВрдХрд▓рдХ рд╕рдм рдХреБрдЫ рдпрд╣ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рдЙрдкрдпреБрдХреНрдд рдХреЙрдиреИрдЯ рд╡рд┐рдзрд┐ рдЕрдзрд┐рднрд╛рд░ рдЪреБрдирдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИред рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ s = a + "b" + "c" + d рдХреЛ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ



 s = string.Concat(a, "bc", d)
      
      





рдпрд╣ рдПрдХ рдЦрд╛рд▓реА рдФрд░ рдЕрд╢рдХреНрдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реЗ рдЬреБрдбрд╝реЗ рдЕрдиреБрдХреВрд▓рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдХрд╣рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХрдВрдкрд╛рдЗрд▓рд░ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рд╕рдВрдШрдирди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ s = a + "" + b рдХреЛ рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ



 s = string.Concat(a, b),
      
      





рдЙрдореНрдореАрдж рдХреЗ рдмрдЬрд╛рдп



 s = string.Concat (a, "", b)
      
      





рдЗрд╕реА рдкреНрд░рдХрд╛рд░, рдПрдХ рддрд╛рд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЬрд┐рд╕рдХрд╛ рдорд╛рди рд╢реВрдиреНрдп рд╣реИ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣реИ:



 const string nullStr = null; s = a + nullStr + b;
      
      





рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░ рджрд┐рдпрд╛



 s = string.Concat(a, b)
      
      





рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ s = a + nullStr s = a ?? рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреА рд╣реИ "" рдпрджрд┐ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ, рдФрд░ string рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реИред Concat (a) рдореЗрдердб, рдпрджрд┐ рдХреЛрдИ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд╣реАрдВ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, s = 17 + nullStr, s = string рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИред (17)ред



рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рд╢реЗрд╖рддрд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╢рд╛рдмреНрджрд┐рдХрддрд╛ рдХреЗ рдЕрдиреБрдХреВрд▓рди рдФрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдСрдкрд░реЗрдЯрд░ + рдХреА рдмрд╛рдИрдВ-рд╕рдВрдмрджреНрдзрддрд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред



рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:



 var s1 = 17 + 17 + "abc";
      
      





рдмрд╛рдПрдВ-рд╕рдорд░реВрдкрддрд╛, рдпрд╣ рд╕рдорддреБрд▓реНрдп рд╣реИ



 var s1 = (17 + 17) + "abc"; //   string.Concat(34, "abc")
      
      





рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╕рдВрдХрд▓рди рдЪрд░рдг рдореЗрдВ, рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рдЬреЛрдбрд╝ рдШрдЯрд┐рдд рд╣реЛрдЧрд╛, рдЬрд┐рд╕рд╕реЗ рдкрд░рд┐рдгрд╛рдо 34abc рд╣реЛрдЧрд╛ред



рджреВрд╕рд░реА рдУрд░ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐



 var s2 = "abc" + 17 + 17;
      
      





рд╕рдорддреБрд▓реНрдп рд░реВрдк



 var s2 = ("abc" + 17) + 17; //   string.Concat("abc", 17, 17)
      
      





рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк abc1717ред



рддреЛ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╣реА рд╕рдВрдШрдирди рдСрдкрд░реЗрд╢рди рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рдгрд╛рдо рд╣реЛрддреЗ рд╣реИрдВред



String.Concat VS StringBuilder.Append



рдЗрд╕ рддреБрд▓рдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╢рдмреНрдж рдХрд╣рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:



 string name = "Timur"; string surname = "Guev"; string patronymic = "Ahsarbecovich"; string fio = surname + name + patronymic;
      
      





рдЗрд╕реЗ StringBuilder рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЛрдб рд╕реЗ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:



 var sb = new StringBuilder(); sb.Append(surname); sb.Append(name); sb.Append(patronymic); string fio = sb.ToString();
      
      





рд▓реЗрдХрд┐рди рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╣рдо рд╢рд╛рдпрдж рд╣реА рдХрднреА рд╕реНрдЯреНрд░рд┐рдВрдЧрдмреНрдпреВрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдн рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рдХреЛрдб рдХреЛ рдХрдо рдкрдардиреАрдп рдмрдирд╛рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рднреА рдХрдо рдХреБрд╢рд▓ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХреЙрдирдЯреИрдЯ рдкрджреНрдзрддрд┐ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рд▓рдВрдмрд╛рдИ рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░ рд╕реНрдЯреНрд░реАрдВрдЧрдмрд░реНрд▓ рдХреЗ рд╡рд┐рдкрд░реАрдд рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рд▓рдВрдмрд╛рдИ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдкрддрд╛ рд╣реИред



3 рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЙрдиреИрдЯ рд╡рд┐рдзрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди:



 public static string Concat(string str0, string str1, string str2) { if (str0 == null && str1 == null && str2 == null) return string.Empty; if (str0 == null) str0 = string.Empty; if (str1 == null) str1 = string.Empty; if (str2 == null) str2 = string.Empty; string dest = string.FastAllocateString(str0.Length + str1.Length + str2.Length); //     string.FillStringChecked(dest, 0, str0); / string.FillStringChecked(dest, str0.Length, str1); string.FillStringChecked(dest, str0.Length + str1.Length, str2); return dest; }
      
      





рдЬрд╛рд╡рд╛ рдореЗрдВ + рдСрдкрд░реЗрдЯрд░



рдЬрд╛рд╡рд╛ рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдСрдкрд░реЗрдЯрд░ + рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╢рдмреНрджред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдЬрд╛рд╡рд╛ рдореЗрдВ рдХрд╛рд░реНрдпрдХреНрд░рдо рдирд╣реАрдВ рдХрд░рддрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдЬрд╛рдирдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ рдХрд┐ рдЪреАрдЬреЗрдВ рдХреИрд╕реА рд╣реИрдВред Java рдХрдВрдкрд╛рдЗрд▓рд░ + рдСрдкрд░реЗрдЯрд░ рдХреЛ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝ рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╡рд╣ StringBuilder рдХреНрд▓рд╛рд╕ рдФрд░ рдПрдкреЗрдВрдб рдореЗрдердб рдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗред



рдкрд┐рдЫрд▓рд╛ рдХреЛрдб рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ



 String fio = new StringBuilder(String.valueOf(surname)).append(name).append(patronymic).ToString()
      
      





рдпрд╣ рднреА рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╣реИ рдХрд┐ рд╕реА # рдиреЗ рдЬрд╛рдирдмреВрдЭрдХрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЕрдиреБрдХреВрд▓рди рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛, рдПрд░рд┐рдХ рд▓рд┐рдкрд░реНрдЯ рдХрд╛ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдПрдХ рдкреЛрд╕реНрдЯ рд╣реИ ред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдЕрдиреБрдХреВрд▓рди рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдХреЛрдб рдХрд╛ рдкреБрдирд░реНрд▓реЗрдЦрди рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕реА # рднрд╛рд╖рд╛ рдХреЗ рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рдХрд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧрдмрд░реНрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред



рд╡реИрд╕реЗ, рдпрд╣ рдПрд░рд┐рдХ рд▓рд┐рдкрд░реНрдЯ рдерд╛ рдЬреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рдВрдзрд┐ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕реА # рд╕рдВрдХрд▓рдХ рдЕрдиреБрдХреВрд▓рди рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдерд╛ред



рдирд┐рд╖реНрдХрд░реНрд╖



рд╢рд╛рдпрдж рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ рдпрд╣ рдЕрдЬреАрдм рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╡рд░реНрдЧ + рдСрдкрд░реЗрдЯрд░ рдХреЛ рддрдм рддрдХ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рд╣рдо рдХреЛрдб рдХреЗ рдПрдХ рдмрдбрд╝реЗ рдЯреБрдХрдбрд╝реЗ рдХреА рджреГрд╢реНрдпрддрд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдВрдХрд▓рдХ рдЕрдиреБрдХреВрд▓рди рдХреА рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рдВрдЪрд╛рд▓рдХ рдореЗрдВ + рд╕рдВрдЪрд╛рд▓рдХ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ s = a + b + c + d рджреЛ рдордзреНрдпрд╡рд░реНрддреА рд░реЗрдЦрд╛рдУрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рдУрд░ рд▓реЗ рдЬрд╛рдПрдЧрд╛, рдХреЗрд╡рд▓ string.Concat (a, b, c, d) рд╡рд┐рдзрд┐ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗред



All Articles