рд▓реЗрдЦ рдХреЗ
рдкрд╣рд▓реЗ рднрд╛рдЧ рдореЗрдВ, TIOBE рд░реЗрдЯрд┐рдВрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ C # рдкрд░ VB.NET рд╢реНрд░реЗрд╖реНрдарддрд╛ рдХреЗ рд╡рд┐рд╖рдп рдкрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдЬреАрд╡рдВрдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдорд┐рд▓реАред рдЗрд╕рд▓рд┐рдП,
AngReload рдХреА
рд╕рд▓рд╛рд╣ рдкрд░
, StackOverflow рдХреЗ
рд░реБрдЭрд╛рдиреЛрдВ рдХреЛ рджреЗрдЦреЗрдВ ред

C # рдЕрднреА рднреА рдордЬрдмреВрдд рд╣реИ! рдЬрд┐рд╕ рдХреНрд░рд╛рдВрддрд┐ рдХреА рдмрд╛рдд рдЗрддрдиреЗ рд╕рдордп рд╕реЗ рдХреА рдЬрд╛ рд░рд╣реА рдереА, рд╡рд╣ рд░рджреНрдж рд╣реЛ рдЧрдИ рд╣реИ! рд╣реБрд░реНрд░реЗ, рдХреЙрдорд░реЗрдбреНрд╕! рдпрд╛ рдирд╣реАрдВ? TIOBE рд░реЗрдЯрд┐рдВрдЧ рдЦреЛрдЬ рдЗрдВрдЬрди рдкреНрд░рд╢реНрдиреЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдФрд░ SO рд░реЗрдЯрд┐рдВрдЧ рдкреВрдЫреЗ рдЧрдП рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рдЯреИрдЧ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рд╢рд╛рдпрдж VB.NET рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕, рдЬрд┐рд╕рдореЗрдВ рдХрдИ рдРрд╕реЗ рд▓реЛрдЧ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╣реАрдВ рд╣реИ, рдмрд╕ рд╕реНрдЯреИрдХрд╡реЗрд░рдлреНрд▓реЛ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ? рдпрд╛ Google, рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдмрд┐рдВрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд╣рд╛рдВ рдЧрдП, рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рдХрд┐ рдХреИрд╕реЗ рдПрдХ рдкреНрд░рд╢реНрди рдкреВрдЫреЗрдВ? рдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рдкрд░реНрдпрд╛рдкреНрдд Miscrosoft рджрд╕реНрддрд╛рд╡реЗрдЬ рд╣реЛ, рдФрд░ рд╕рднреА рдХреБрдЫ рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рдкрд╣рд▓реЗ рд╣реА рджрд┐рдП рдЬрд╛ рдЪреБрдХреЗ рд╣реЛрдВред
рдПрдХ рддрд░рд╣ рд╕реЗ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп, VB.NET рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рдФрд░ рд╕реНрдерд┐рд░ рд╣реИ, рдпрджреНрдпрдкрд┐ рдорд╛рддреНрд░рд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реНрдерд╛рди рдкрд░ рдирд╣реАрдВ рд╣реИред рдФрд░, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдбрд┐рдЬрд╛рдЗрдирд░реЛрдВ рдФрд░ рднрд╛рд╖рд╛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреА рдордЬрдмреВрдд рдЯреАрдо рдХреЗ рдмрд┐рдирд╛ рдРрд╕рд╛ рдкрд░рд┐рдгрд╛рдо рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдиреАрдЪреЗ рдЗрд╕ рдЯреАрдо рдХреЗ рдПрдХ рд╕рджрд╕реНрдп
рдПрдВрдердиреА рдЧреНрд░реАрди рдХреЗ рд▓реЗрдЦ рдХреЗ рдЕрдиреБрд╡рд╛рдж рдХрд╛ рджреВрд╕рд░рд╛ рднрд╛рдЧ рд╣реИред
рд╕рд╛рдордЧреНрд░реА
рдЫрд┐рдкрд╛ рд╣реБрдЖ рдкрд╛рдард░реВрдкрд╛рдВрддрд░рдг
рднрд╛рд╡
рд░реВрдкрд╛рдВрддрд░рдг
34. рдмреВрд▓рд┐рдпрди рдкрд░рд┐рд╡рд░реНрддрди
Boolean True
рдХреЛ рдХрд┐рд╕реА рднреА рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкреНрд░рдХрд╛рд░ рдХреА рдкреИрджрд╛рд╡рд╛рд░ рдХреЗ рд▓рд┐рдП
Boolean True
рд╣реИ
-1
, рдФрд░ рдХрд┐рд╕реА рднреА рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдкреНрд░рдХрд╛рд░ рд╕реЗ рдпрд╣ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХрддрдо рдореВрд▓реНрдп рджреЗрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ C # рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рд░реВрдкрд╛рдВрддрд░рдг рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐,
Convert.ToInt32
рд╡рд┐рдзрд┐, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
True
рдХреЛ
1
рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣
IL
рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд┐рдкрд░реАрдд рджрд┐рд╢рд╛ рдореЗрдВ,
0
рдЕрд▓рд╛рд╡рд╛ рдХреЛрдИ рднреА рд╕рдВрдЦреНрдпрд╛
True
рдмрджрд▓ рдЬрд╛рддреА рд╣реИред
рдХреНрдпреЛрдВ? VB рдХрд╛ рдХрд╛рд░рдг
-1
рд╕реЗ
1
рддрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХрд┐рд╕реА рднреА рднрд╛рд╖рд╛ рдореЗрдВ
-1
(рд╕рднреА рдмрд┐рдЯреНрд╕ 0 рдкрд░ рд╕реЗрдЯ рд╣реИрдВ) рдХреА рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ рдиреЗрдЧреЗрдЯрд┐рд╡
-1
(рд╕рднреА рдмрд┐рдЯреНрд╕
1
рд╕реЗрдЯ рд╣реИрдВ), рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рддрд╛рд░реНрдХрд┐рдХ рдФрд░ рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ
And
,
Or
Xor
рдЬреИрд╕реЗ рдСрдкрд░реЗрд╢рдиред
"рдЯреНрд░реВ" рдФрд░ "рдЧрд▓рдд" рд▓рд╛рдЗрдиреЛрдВ рд╕реЗ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдмрд╛рддрдЪреАрдд рдХрд╛ рднреА рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдмреЗрд╢рдХ, рдХреЗрд╕ рдЕрд╕рдВрд╡реЗрджрдирд╢реАрд▓)ред
35. Enum рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде-рд╕рд╛рде Enum рдкреНрд░рдХрд╛рд░реЛрдВ рдФрд░ рдЙрдирдХреЗ рдЖрдзрд╛рд░ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдмреАрдЪ рдмрд╛рддрдЪреАрдд рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд╕реАрдорд┐рдд рд╣реИ, рднрд▓реЗ рд╣реА рд╡рд┐рдХрд▓реНрдк рд╕рдЦреНрдд рдСрди рдкрд░ рд╕реЗрдЯ рд╣реЛ
рджрд╛рд░реНрд╢рдирд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдПрдХ рднрд╛рд╖рд╛
Enum
рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддреА рд╣реИ, рдмрд▓реНрдХрд┐ рдПрдХ рдореВрд▓ рдкреВрд░реНрдгрд╛рдВрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдирд╛рдорд┐рдд рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВред рдпрд╣ рд╕рдмрд╕реЗ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдЬрд╣рд╛рдВ рдЬрдЧрд╣ рд╕рдорд╛рдирддрд╛ рд╣реИред рдХрд┐рд╕реА рднреА рдкреВрд░реНрдгрд╛рдВрдХ рдХреА рддреБрд▓рдирд╛ рдПрдиреНрдпреВрдорд░реЗрд╢рди рдорд╛рди рд╕реЗ рдХрд░рдирд╛ рд╣рдореЗрд╢рд╛ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИ, рдЬрдмрдХрд┐ C # рдореЗрдВ рдпрд╣ рдПрдХ рддреНрд░реБрдЯрд┐ рджреЗрддрд╛ рд╣реИред
рдХрд╣рд╛рдиреА рдХрд╛ рд╕рдордп: рд░реЛрдЬрд▓рд┐рди рдПрдкреАрдЖрдИ рдХрдИ рдЖрдВрддрд░рд┐рдХ рд╕рдВрд╢реЛрдзрдиреЛрдВ рд╕реЗ рдЧреБрдЬрд░рд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ
SyntaxKind
рдЧрдгрдирд╛ рдЖрд╡рдВрдЯрд┐рдд рдХреА рдЧрдИ рдереА, рдЬреЛ рдЖрдкрдХреЛ рдмрддрд╛рддреА рд╣реИ рдХрд┐ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреНрдпрд╛ рдиреЛрдб рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
IfStatement
,
TryCastExpression
)ред рдПрдХ рдмрд╛рд░, рдПрдХ рдбреЗрд╡рд▓рдкрд░ рдиреЗ рдПрдХ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЬрд┐рд╕рдиреЗ рднрд╛рд╖рд╛ рд╕реЗ рдЕрдореВрд░реНрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░
SyntaxKind
рдореВрд▓реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рд▓реМрдЯрд╛рдпрд╛, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓
SyntaxKind
рд░реВрдк рдореЗрдВ, рдФрд░ рдХрдЪреНрдЪреЗ
SyntaxKind
рдФрд░
SyntaxKind
рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╕рдордп рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдмрд┐рдирд╛, рдпрд╣ рдбреЗрд╡рд▓рдкрд░ рддреБрд░рдВрдд рдореЗрд░реЗ рдХрд╛рд░реНрдпрд╛рд▓рдп рдореЗрдВ рдЖрдпрд╛ рдФрд░ рд╢рд┐рдХрд╛рдпрдд рдХреА:
"int рд╣реИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╕реНрддрд╛рд░, рдореБрдЭреЗ рдПрдХ рдХрд╛рд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛! " ред
рд╡рд░реНрд╖реЛрдВ рдХреЗ рджреМрд░рд╛рди, рдПрдкреАрдЖрдИ рдХреЗ рдЕрдЧрд▓реЗ рд╕рдВрд╢реЛрдзрди рдХреЗ рджреМрд░рд╛рди, рд╣рдордиреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ (
Property Kind As SyntaxKind
) рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛, рдЬрд┐рд╕рдиреЗ рдПрдХ рднрд╛рд╖рд╛-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд┐рдпрд╛, рдФрд░ рд╕рднреА рдПрдкреАрдЖрдИ
Property Kind As SyntaxKind
рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рд▓рдЧреЗред рд╕рднреА C # рдХреЛрдб рдЯреВрдЯ рдЧрдП, рдФрд░ рд╕рднреА VB рдХреЛрдб рдХрд╛рдо рдХрд░рддреЗ рд░рд╣реЗ рдЬреИрд╕реЗ рдХрд┐ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реБрдЖ рдерд╛ред
рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж, рд╣рдордиреЗ рдЗрд╕ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдирд╛рдо
RawKind
рдирд╛рдо рдкрд░
RawKind
рдФрд░ рднрд╛рд╖рд╛-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╡рд┐рдзрд┐рдпреЛрдВ
Kind()
рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рд╕рднреА C # рдХреЛрдб рдЯреВрдЯ рдЧрдП рдХреНрдпреЛрдВрдХрд┐ рдХреЛрд╖реНрдардХ рдХреЛ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рдЙрдиреНрд╣реЗрдВ VB рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рдерд╛, рд╕рднреА VB рдХреЛрдб рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рдереЗ рдЬреИрд╕реЗ рдХрд┐ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реБрдЖ рдерд╛ред
36. рдкреВрд░реНрдгрд╛рдВрдХ рдЕрдВрдХрдЧрдгрд┐рдд рдХреЗ рд▓рд┐рдП рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ / рдирдХрд╛рд░рд╛рддреНрдордХ рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрдХрд▓рди рд╡рд╛рддрд╛рд╡рд░рдг (рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕) рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ, рд▓реЗрдХрд┐рди VB рдФрд░ C # рд╡рд┐рднрд┐рдиреНрди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ; VB рдореЗрдВ, рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рдЬрд╛рдБрдЪ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рд╣реИ
рдЕрднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреА рдПрдХ рд╕реАрдорд╛ рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
Byte
0 рд╕реЗ 255 рддрдХ рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЬрдм рдЖрдк
Byte
1 рдХреЛ 255 рддрдХ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ? рдпрджрд┐ рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ / рдЕрдВрдбрд░рдлреНрд▓реЛ рдЪреЗрдХ рдЕрдХреНрд╖рдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдорд╛рди 0. рдкрд░ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдкреНрд░рдХрд╛рд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рд╣реИ, рддреЛ рдпрд╣ рд╕рдмрд╕реЗ рдХрдо рдирдХрд╛рд░рд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
SByte
рд▓рд┐рдП -128) рдХреЛ
SByte
ред рдпрд╣ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рдЖрдкрдХреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рддреНрд░реБрдЯрд┐ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ / рдЕрдВрдбрд░рдлреНрд▓реЛ рдЬрд╛рдБрдЪ рд╕рдХреНрд╖рдо рд╣реИ, рддреЛ рдПрдХ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдореЗрд░рд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ, рдЗрд╕ рд╣рд╛рдирд┐рд░рд╣рд┐рдд
For
loop рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред
Module Program Sub Main() For i As Byte = 0 To 255 Console.WriteLine(i) Next End Sub End Module
github рд╕реНрд░реЛрдд рдХреЛрдбрдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣ рд▓реВрдк VB рдореЗрдВ рдПрдХ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХ рджреЗрдЧрд╛ (рдЪреВрдВрдХрд┐ рд▓реВрдк рдХрд╛ рдЕрдВрддрд┐рдо рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐
Byte
рд╕реАрдорд╛ рд╕реЗ рдкрд░реЗ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рдЬрд╛рдВрдЪ рдмрдВрдж рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде, рдпрд╣ рд▓реВрдк рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ 255 рдХреЗ рдмрд╛рдж рдореИрдВ рдлрд┐рд░ рд╕реЗ 0 рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдЕрдзрд┐рдХрддрдо рдореВрд▓реНрдп рдореЗрдВ рдкреНрд░рдХрд╛рд░ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд▓рд┐рдП рдиреНрдпреВрдирддрдо рдореВрд▓реНрдп рд╕реЗ рдиреАрдЪреЗ рдШрдЯрд╛рддреЗ рд╕рдордп рдЕрдВрддрд░реНрд╡рд╛рд╣ рд╡рд┐рдкрд░реАрдд рд╕реНрдерд┐рддрд┐ рд╣реИред
рдПрдХ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рд╕реНрдерд┐рддрд┐ рдХреЗрд╡рд▓ рджреЛ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рдЬреЛрдбрд╝ рд╣реИред 130 рдФрд░ 150 рдХреА рд╕рдВрдЦреНрдпрд╛, рджреЛрдиреЛрдВ рдХреЛ
Byte
рд░реВрдк рдореЗрдВ рд▓реЗрдВред рдпрджрд┐ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕рд╛рде рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЙрддреНрддрд░ 280 рд╣реИ, рдЬреЛ рдмрд╛рдЗрдЯ рдореЗрдВ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЖрдкрдХреЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛ рдЗрд╕рдХрд╛ рдПрд╣рд╕рд╛рд╕ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╡рд╣ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЙрддреНрддрд░ 24 рд╣реИред
рд╡реИрд╕реЗ, рдЗрд╕рдХрд╛ рд░реВрдкрд╛рдВрддрд░рдгреЛрдВ рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИред рджреЛ рдмрд╛рдЗрдЯреНрд╕ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдПрдХ рдмрд╛рдЗрдЯ рдорд┐рд▓рддреА рд╣реИ; рдпрд╣ рд╕рд┐рд░реНрдл рдмрд╛рдЗрдирд░реА рдЧрдгрд┐рдд рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рд╣реИред рдпрджреНрдпрдкрд┐ рдЖрдк рд░реВрдкрд╛рдВрддрд░рдг рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдХреЗ рднреА рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рд▓реЙрдиреНрдЧ рдХреЛ рдЗрдВрдЯреЗрдЧрд░ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИред рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХреЗ рдмрд┐рдирд╛, рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗрд╡рд▓ рдЕрддрд┐рд░рд┐рдХреНрдд рдмрд┐рдЯреНрд╕ рдФрд░ рд╕рд╛рдорд╛рди рдХреЛ рдХрд╛рдЯ рджреЗрддрд╛ рд╣реИ рдЬрд┐рддрдирд╛ рдХрд┐ рдЗрд╕ рдЪрд░ рдореЗрдВ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИред
рдЕрдВрддрд░ рдХреНрдпрд╛ рд╣реИ? рдкреНрд░рджрд░реНрд╢рдиред рдУрд╡рд░рдлреНрд▓реЛ рдХреЗ рд▓рд┐рдП рд╕реАрдПрд▓рдЖрд░ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛ рдЧреИрд░-рдЪреЗрдХрд┐рдВрдЧ рд╡рд┐рдХрд▓реНрдк рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рд╕рдордп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЕрдиреНрдп рд╕рднреА рд╕реБрд░рдХреНрд╖рд╛ рдЬрд╛рдВрдЪреЛрдВ рдХреА рддрд░рд╣ред VB рджрд░реНрд╢рди рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ рдХрд┐ рдбреЗрд╡рд▓рдкрд░ рдЙрддреНрдкрд╛рджрдХрддрд╛ рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рдкреНрд░рджрд░реНрд╢рди рд╕реЗ рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдЗрд╕рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕реБрд░рдХреНрд╖рд╛ рдЬрд╛рдБрдЪ рд╕рдХреНрд╖рдо рд╣реИред C # рд╡рд┐рдХрд╛рд╕ рдЯреАрдо
рдЖрдЬ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкрд░ рдПрдХ рдЕрд▓рдЧ рдирд┐рд░реНрдгрдп рд▓реЗ
рд╕рдХрддреА рд╣реИ , рд▓реЗрдХрд┐рди рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдкрд╣рд▓реЗ C # рдбреЗрд╡рд▓рдкрд░реНрд╕ C / C ++ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реЗ рдЖрдП рдереЗ, рд▓реЛрдЧреЛрдВ рдХреЗ рдЗрд╕ рд╕рдореВрд╣ рдХреЛ рд╕рдВрднрд╡рддрдГ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛ рдХрд┐ рдХреЛрдб рдХреБрдЫ рдФрд░ рди рдХрд░реЗрдВ, рдЬрд┐рд╕рд╕реЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдЪрдХреНрд░ рдХреА рд▓рд╛рдЧрдд рд╣реЛ рд╕рдХрддреА рд╣реИ ;
рдпрд╣ рдПрдХ рдХрдард┐рди рджрд╛рд░реНрд╢рдирд┐рдХ рдЕрдВрддрд░ рд╣реИ ред
Nuance: рдУрд╡рд░рдлреНрд▓реЛ / рдЕрдВрдбрд░рдлреНрд▓реЛ рдЪреЗрдХ рдХреЛ рдмрдВрдж рдХрд░ рджреЗрдиреЗ рдкрд░ рднреА,
PositiveInfinity
,
NegativeInfinity
,
NaN
рдХреЗ
Single
рдпрд╛
Double
рд╕реЗ
Decimal
NaN
рдХрд╛ рд░реВрдкрд╛рдВрддрд░рдг рдПрдХ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХ
Decimal
, рдХреНрдпреЛрдВрдХрд┐ рдЗрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рд╕рд┐рджреНрдзрд╛рдВрдд рджрд╢рдорд▓рд╡ рдореЗрдВ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
37. рдлрд╝реНрд▓реЛрдЯрд┐рдВрдЧ рдкреЙрдЗрдВрдЯ рдирдВрдмрд░реЛрдВ рдХреЛ рдкреВрд░реНрдгрд╛рдВрдХ рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреИрдВрдХрд░реЛрдВ рдХреЛ рдЯреНрд░рдВрдХрдЯрд┐рдВрдЧ рдХреЗ рдмрдЬрд╛рдп рдЧреЛрд▓рд╛рдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
рдпрджрд┐ рдЖрдк VB рдореЗрдВ 1.7 рдХреЛ рдкреВрд░реНрдгрд╛рдВрдХ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкрд░рд┐рдгрд╛рдо 2 рд╣реЛрдЧрд╛ред C # рдореЗрдВ, рдкрд░рд┐рдгрд╛рдо 1 рд╣реЛрдЧрд╛ред рдореИрдВ рдЕрдореЗрд░рд┐рдХрд╛ рдХреЗ рдмрд╛рд╣рд░ рдЧрдгрд┐рддреАрдп рдирд┐рдпрдореЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдирд╣реАрдВ рдХрд╣ рд╕рдХрддрд╛, рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рд╕рд╣рдЬ рд░реВрдк рд╕реЗ рдЧреЛрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реВрдВред рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд╕рд░реНрдХрд▓ рдХреЗ рдмрд╛рд╣рд░ рдореБрдЭреЗ рдХреЛрдИ рднреА рдирд╣реАрдВ рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ 1.7 рдХрд╛ рдирд┐рдХрдЯрддрдо рдкреВрд░реНрдгрд╛рдВрдХ 1 рд╣реИред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрдИ рд░рд╛рдЙрдВрдбрд┐рдВрдЧ рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реИрдВ, рдФрд░ VB (рдФрд░ Math.Round рдкрджреНрдзрддрд┐ рдореЗрдВ) рд░рд╛рдЙрдВрдбрд┐рдВрдЧ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрд╡рд┐рджреЛрдВ рджреНрд╡рд╛рд░рд╛ рдмреИрдВрдХ рд░рд╛рдЙрдВрдбрд┐рдВрдЧ рдпрд╛ рд░рд╛рдЙрдВрдбрд┐рдВрдЧ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рд╕рд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рджреЛ рдкреВрд░реНрдгрд╛рдВрдХреЛрдВ рдХреЗ рдмреАрдЪ рдмреАрдЪ рдореЗрдВ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП, рд╡реАрдмреА рдирд┐рдХрдЯрддрдо рд╕рдо рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЧреЛрд▓ рд╣реЛрддрд╛ рд╣реИред рддреЛ 1.5 рдХреЛ 2 рдХреЗ рд▓рд┐рдП рдЧреЛрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ 4.5 рдХреЛ 4 рд╕реЗ рдЧреЛрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдо рд╕реНрдХреВрд▓ рдореЗрдВ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдкрдврд╝рд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ рд╡рд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ - рдореБрдЭреЗ 0.5 рд╕реЗ рдЧреЛрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ (рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ, рд╢реВрдиреНрдп рд╕реЗ рдкрдХреНрд╖ рдХреА рдУрд░)ред рд▓реЗрдХрд┐рди, рдЬреИрд╕рд╛ рдХрд┐ рдирд╛рдо рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ, рдмреИрдВрдХ рд░рд╛рдЙрдВрдбрд┐рдВрдЧ рдХрд╛ рдпрд╣ рдлрд╛рдпрджрд╛ рд╣реИ рдХрд┐ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЧрдгрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде, рдЖрдк рдЖрдзреЗ рдореЗрдВ рдЪрдХреНрдХрд░ рд▓рдЧрд╛рддреЗ рд╕рдордп рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рд╣рдореЗрд╢рд╛ рдкреИрд╕рд╛ рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВ рдпрд╛ рд╣рдореЗрд╢рд╛ рдкреИрд╕рд╛ рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдПрдХ рдмрдбрд╝реЗ рд╕реЗрдЯ рдкрд░, рдпрд╣ рдбреЗрдЯрд╛ рд╡рд┐рд░реВрдкрдг рдХреЛ рдЕрдВрддрд┐рдо рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рд╡рд┐рдЪрд▓рди рддрдХ рд╕реАрдорд┐рдд рдХрд░рддрд╛ рд╣реИред
рдлрд░реНрдХ рдХрд╣рд╛рдВ рд╕реЗ рдЖрддрд╛ рд╣реИ? рдЧреЛрд▓рд╛рдИ рдЕрдзрд┐рдХ рд╕рд╣рдЬ рдФрд░ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╣реИ, рддреЗрдЬреА рд╕реЗ рдЫреЛрдЯрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдпрджрд┐ рдЖрдк LOB рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ VB рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ VBA рдкрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ Excel macros рдЬреИрд╕реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ, рдмрд╕ рджрд╢рдорд▓рд╡ рд╕реНрдерд╛рдиреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛рдПрдБ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ ...ред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рд░реВрдкрд╛рдВрддрд░рдг рдХреА рд╡рд┐рдзрд┐ рд╣рдореЗрд╢рд╛ рдПрдХ рд╡рд┐рд╡рд╛рджрд╛рд╕реНрдкрдж рдореБрджреНрджрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдХреЛ рдХрд┐рд╕реА рдПрдХ рдХреЛ рдЪреБрдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ...
38. NotInheritable Classes рдХреЛ / рдРрд╕реЗ рдЗрдВрдЯрд░рдлреЗрд╕ рд╕реЗ рдмрджрд▓рдирд╛ рдХреЛрдИ рдЧрд▓рддреА рдирд╣реАрдВ рд╣реИ рдЬреЛ рд╡реЗ рд╕рдВрдХрд▓рди рдХреЗ рд╕рдордп рдкрд░ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ
рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рдпрджрд┐ рдЖрдк рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдПрдХ NonInheritable class рдХреА рдЬрд╛рдБрдЪ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╕рдВрдХрд▓рди рд╕рдордп рдкрд░ рд╕рдордЭ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдРрд╕рд╛ рд░реВрдкрд╛рдВрддрд░рдг рд╕рдВрднрд╡ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рднреА рдЗрдВрдЯрд░рдлреЗрд╕ рдФрд░ рдЗрд╕рдХреЗ рд╕рднреА рдореВрд▓ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдЬрд╛рдирддреЗ рд╣реИрдВред рдпрджрд┐ рдкреНрд░рдХрд╛рд░ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ, рддреЛ рдЖрдк рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдРрд╕рд╛ рд░реВрдкрд╛рдВрддрд░рдг рдЕрд╕рдВрднрд╡ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд░рдирдЯрд╛рдЗрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдкреНрд░рдХрд╛рд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЕрдзрд┐рдХ рд╡реНрдпреБрддреНрдкрдиреНрди рдкреНрд░рдХрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЗрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, COM рдЗрдВрдЯрд░реЙрдк рдХреЗ рдХрд╛рд░рдг рдПрдХ рдЕрдкрд╡рд╛рдж рд╣реИ, рдЬрдм рд╕рдВрдХрд▓рди рд╕рдордп рдкрд░ рдпрд╣ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде рдХреБрдЫ рднреА рдХрд░рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рдпрд╣ рд╣реЛрдЧрд╛ред рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ, VB рдХрдВрдкрд╛рдЗрд▓рд░ рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред
рдХреНрдпреЛрдВ? VB рдФрд░ COM рдПрдХ рд╕рд╛рде рдмрдбрд╝реЗ рд╣реБрдП рдЬрдм рд╡реЗ рдкреБрд░рд╛рдиреЗ рдкрдбрд╝реЛрд╕ рдореЗрдВ рдмрдЪреНрдЪреЗ рдереЗред рддреЛ рднрд╛рд╖рд╛ рдбрд┐рдЬрд╛рдЗрди рдореЗрдВ рдХрдИ рд╕рдорд╛рдзрд╛рди рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд╡реАрдмреА рдЙрди рдЪреАрдЬреЛрдВ рдкрд░ рдмрд╣реБрдд рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реИ рдЬреЛ рдХреЗрд╡рд▓ .NET 1.0 рдХреЗ рд░рд┐рд▓реАрдЬ рдХреЗ рд╕рдордп COM рдореЗрдВ рдореМрдЬреВрдж рдереЗред
39. рдкреНрд░рдХрд╛рд░ рдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдореЗрдВ рдПрдХ рд╕рд╛рд░реНрдердХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдЕрдирдкреИрдХ (рдЕрдирдмреЙрдХреНрд╕) рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛, NullReferenceException рдирд╣реАрдВ рд╣реИ
рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рдпрд╣ рд╕рдВрджрд░реНрдн рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рднреА рд╕рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди рд╣рд╛рдБ:
CInt(CObj(Nothing)) = 0
рдХреНрдпреЛрдВ? рдХреНрдпреЛрдВрдХрд┐
CInt(Nothing) = 0
, рдФрд░ рднрд╛рд╖рд╛ рдХреБрдЫ рд╣рдж рддрдХ рд╕реБрд╕рдВрдЧрдд рд╣реИ, рднрд▓реЗ рд╣реА рдЖрдкрдиреЗ рдЕрдкрдиреЗ рдЪрд░ рдЯрд╛рдЗрдк рдХрд┐рдП рд╣реЛрдВ рдпрд╛ рдирд╣реАрдВред рдпрд╣ рдХрд┐рд╕реА рднреА рд╕рдВрд░рдЪрдирд╛ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ, рди рдХрд┐ рдмрд┐рд▓реНрдЯ-рдЗрди рд╕рд╛рд░реНрдердХ рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВред рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП
# 25 рдкрд░ рддрд░реНрдХ рджреЗрдЦреЗрдВред
40. рдЕрдирдмреЙрдХреНрд╕рд┐рдВрдЧ рдЖрджрд┐рдо рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдкрд╛рдВрддрд░рдгреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ
VB рдФрд░ C # рджреЛрдиреЛрдВ рдореЗрдВ рдЖрдк
Short
рдХреЛ
Integer
рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдЖрдк рдкреИрдХ
Short
рдХреЛ
Integer
рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ? VB рдореЗрдВ
Short
рдХреЛ рдкрд╣рд▓реЗ рдЕрдирдкреИрдХ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдлрд┐рд░
Integer
рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред C # рдореЗрдВ, рдЬрдм рддрдХ рдХрд┐ рдЖрдк
int
рдХрдирд╡рд░реНрдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЕрдирдкреИрдХ рдирд╣реАрдВ рдХрд░рддреЗ, рддрдм рддрдХ
InvalidCastException
рдХреЛ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдпрд╣ рд╕рднреА рдЖрдВрддрд░рд┐рдХ рд░реВрдкрд╛рдВрддрд░рдгреЛрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд рдкреИрдХреНрдб рдиреНрдпреВрдореЗрд░рд┐рдХ рдкреНрд░рдХрд╛рд░, рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдФрд░ рдиреНрдпреВрдореЗрд░рд┐рдХ рдкреНрд░рдХрд╛рд░реЛрдВ, рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдФрд░ рджрд┐рдирд╛рдВрдХ рдХреЗ рдмреАрдЪ рд░реВрдкрд╛рдВрддрд░рдг (рд╣рд╛рдБ, рджрд╢рдорд▓рд╡ рдФрд░ рджрд┐рдирд╛рдВрдХ рдЖрджрд┐рдо рдкреНрд░рдХрд╛рд░ рд╣реИрдВ)ред
рдХреНрдпреЛрдВ? рдлрд┐рд░ рд╕реЗ, рдирд┐рд░рдВрддрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЪрд╛рд╣реЗ рдЖрдкрдХрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЯрд╛рдЗрдк рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛ, рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЯрд╛рдЗрдк рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛ, рдпрд╛ рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╕реЗ рджреВрд╕рд░реЗ рдореЗрдВ рд░рд┐рдлреИрдХреНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛред рдКрдкрд░
# 39 рджреЗрдЦреЗрдВред
41. String
рдФрд░ Char
рдмреАрдЪ рд░реВрдкрд╛рдВрддрд░рдг рд╣реИрдВ
String
рдХреЛ Char
String
рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрдкрдиреЗ рдкрд╣рд▓реЗ рдЪрд░рд┐рддреНрд░ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИредChar
рдХреЗрд╡рд▓ рдЙрдЪрд┐рдд рддрд░реАрдХреЗ рд╕реЗ String
рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐рд╕реА рдХреЛ рднреА VB (рдФрд░ рдпрд╣ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП) рдореЗрдВ рдПрдХ рдЪрд░рд┐рддреНрд░ рд╢рд╛рдмреНрджрд┐рдХ рдХрд╛ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдпрд╛рдж рд╣реИред
42. String
рдФрд░ Char
рд╕рд░рдгреА рдХреЗ рдмреАрдЪ рд░реВрдкрд╛рдВрддрд░рдг рд╣реИрдВ
String
рдЕрдкрдиреЗ рд╕рднреА рд╡рд░реНрдгреЛрдВ рд╕реЗ рдорд┐рд▓рдХрд░ рдПрдХ Char
рд╕рд░рдгреА String
рдмрджрд▓ рдЬрд╛рддреА рд╣реИредChar
рд╕рд░рдгреА рдЕрдкрдиреЗ рд╕рднреА рддрддреНрд╡реЛрдВ рд╕реЗ рдорд┐рд▓рдХрд░ рдПрдХ String
рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рдЬрд╛рддреА рд╣реИред
рдирд┐рд╢реНрдЪрд┐рддрддрд╛ рдХреЗ рд▓рд┐рдП: рдпреЗ рдкрд░рд┐рд╡рд░реНрддрди рдирдИ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВ, рдЖрдкрдХреЛ рдЖрдВрддрд░рд┐рдХ
String
рд╕рдВрд░рдЪрдирд╛ рддрдХ рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рдорд┐рд▓рддреА рд╣реИред
рдордЬреЗрджрд╛рд░ рдХрд╣рд╛рдиреА: рдореИрдВрдиреЗ рдПрдХ рдмрд╛рд░ .NET 3.5 рдФрд░ 4.0 рдХреЗ рдмреАрдЪ рдкрд░рд┐рд╡рд░реНрддрди рдкрд╛рдпрд╛ (рдпрд╛ рдореИрдВ рдЗрд╕рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░ рд░рд╣рд╛ рдерд╛, рдФрд░ рдореИрдВ рдЗрд╕ рдкрд░ рд╢реЛрдз рдХрд░ рд░рд╣рд╛ рдерд╛), рдХреНрдпреЛрдВрдХрд┐ рдЗрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдмреАрдЪ .NET рдЯреАрдо рдиреЗ
ParamArray
рд╕рдВрд╢реЛрдзрдХ рдХреЛ рджреВрд╕рд░реЗ
String.Join
рдЕрдзрд┐рднрд╛рд░
String.Join
рдЬреЛрдбрд╝рд╛, рдЬреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреА рдПрдХ рд╕рд░рдгреА рд▓реЗрддрд╛ рд╣реИред ред рд╕рдЯреАрдХ рдорд╛рдиреНрдпрддрд╛рдУрдВ рдХреЛ рд╕рдордп рдореЗрдВ рдЦреЛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рд╢рд╛рдпрдж рдмреЗрд╣рддрд░ рдХреЗ рд▓рд┐рдП), рд▓реЗрдХрд┐рди, рдЬреИрд╕рд╛ рдХрд┐ рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ, рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐
ParamArray
рд╕рдВрд╢реЛрдзрдХ рдХреЗ рд╕рд╛рде рдЕрдм рдЖрдк рдПрдХ
Char
рд╕рд░рдгреА рдХреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░ рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рддрддреНрд╡ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдордЬреЗрджрд╛рд░ рд╡рд┐рд╖рдпред
43 рдФрд░ 44. рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реЗ рд╕рд╛рдВрдЦреНрдпрд┐рдХ рдФрд░ рддрд┐рдерд┐ рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдкрд╛рдВрддрд░рдг рд╢рд╛рдмреНрджрд┐рдХ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ (рдЖрдорддреМрд░ рдкрд░)
CInt("&HFF") = 255
CInt("1e6") = 1_000_000
CDate("#12/31/1999#") = #12/31/1999#
рдпрд╣ рдЖрдзрд╛рд░ рдЙрдкрд╕рд░реНрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ (рдпрд╛ рдСрдХреНрдЯрд▓) рдЗрдирдкреБрдЯ рдХреЛ рдПрдХ рдирдВрдмрд░ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддрд░реАрдХреЗ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИ:
CInt("&H" & input)
ред рджреБрд░реНрднрд╛рдЧреНрдпрд╡рд╢, рдЗрд╕ рд▓реЗрдЦрди рдХреЗ рд╕рдордп рдпрд╣ рд╕рдорд░реВрдкрддрд╛ рдХрдо рд╣реЛрддреА рдЬрд╛ рд░рд╣реА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡реАрдмреА рд░рдирдЯрд╛рдЗрдо рдХреЛ рдмрд╛рдЗрдирд░реА рдЙрдкрд╕рд░реНрдЧ рдФрд░ рдмреА рдпрд╛
1_000
рдЕрдВрдХ рд╕рдореВрд╣
1_000
рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрджреНрдпрддрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдЕрдЧрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рд╕рдВрдХреЗрддрди рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЯрд╛рдЗрдк рдкреНрд░рддреНрдпрдп рдХреЗ рдмрд┐рдирд╛, рдФрд░ рджрд┐рдирд╛рдВрдХ рд░реВрдкрд╛рдВрддрд░рдг рднреА рдорд╛рдирдХ рддрд┐рдерд┐ рд╕реНрд╡рд░реВрдкреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП ISO-8601 рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ JSON рдкреНрд░рд╛рд░реВрдк рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
CDate("2012-03-19T07: 22Z") = #3/19/2012 02:22:00 AM#
ред
рдХреНрдпреЛрдВ? рдореИрдВ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдФрд░ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рдЬрд╛рдирддрд╛ред рд▓реЗрдХрд┐рди рдореИрдВ
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдиреНрдп рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рд╛рд░реВрдкреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдЬреЛ рдЖрдЬ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рд▓рдЧрднрдЧ рд╕рд░реНрд╡рд╡реНрдпрд╛рдкреА рд╣реИрдВ, рдЬреИрд╕реЗ # рдПрдлрдПрдл, рдпреВ + рдПрдлрдПрдл, 0 рдПрдХреНрд╕рдПрдлрдПрдлред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдЬреАрд╡рди рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ ...
45. Char
рдФрд░ рдкреВрд░реНрдгрд╛рдВрдХ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдмреАрдЪ рдХреЛрдИ рд░реВрдкрд╛рдВрддрд░рдг рдирд╣реАрдВ
рдХреНрдпрд╛?!?!?рдЗрди рд╕рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдХреНрдпрд╛ рдЖрдк рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рд╣реИрдВ? VB
Char
рдФрд░
Integer
рдмреАрдЪ рд░реВрдкрд╛рдВрддрд░рдгреЛрдВ рдХреЛ рдордирд╛ рдХрд░рддрд╛ рд╣реИ:
CInt("A"c)
рд╕рдВрдХрд▓рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИредCChar(1)
рд╕рдВрдХрд▓рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдХреНрдпреЛрдВ? рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣реЛрдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдЖрдорддреМрд░ рдкрд░ рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ VB рдПрдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдФрд░ / рдпрд╛ рд╕рд╣рдЬ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди
CInt("1")
рд╡реНрдпрдХреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
CInt("1")
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдзреЗ рдкрд╛рдардХреЛрдВ рдХреЛ рдирдВрдмрд░ 1 (рдЪрд░рд┐рддреНрд░ рдореВрд▓реНрдп 1) тАЛтАЛрдХреА рдЙрдореНрдореАрдж рд╣реЛрдЧреА рдФрд░ рдЖрдзреЗ рдирдВрдмрд░ 49 (ASCII / UTF рдХреЛрдб) рдХреА рдЙрдореНрдореАрдж рдХрд░реЗрдВрдЧреЗ рдЪрд░рд┐рддреНрд░ 1)ред рдЖрдзреЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЧрд▓рдд рдЪреБрдирд╛рд╡ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, VB рдХреЗ рдкрд╛рд╕ рдХреНрд░рдорд╢рдГ ASCII / Unicode рдХреЛрдб рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд,
AscW
рдФрд░
ChrW
рд╡рд░реНрдг рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдХрд╛рд░реНрдп рд╣реИрдВред
рднрд╛рд╡
46. тАЛтАЛрдХреБрдЫ рднреА рдирд╣реАрдВ <> рдЕрд╢рдХреНрдд
VB рдореЗрдВ рд╢рд╛рдмреНрджрд┐рдХ
Nothing
рд╢реВрдиреНрдп рдХрд╛ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реИ
"рдЬрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрд╕рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди", рдФрд░ рдпрд╣ рдХреЗрд╡рд▓ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рд╕рдВрджрд░реНрдн рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╢реВрдиреНрдп рд╣реИред рдЕрдВрддрд░ рдХреЗрд╡рд▓ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдХрд┐рд╕реА рд╕рдВрджрд░реНрдн рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
- рдХреБрдЫ рднреА рдирд╣реАрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рдХрд╛рд░ рдкрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ ...
- рдпрд╣ рдЗрд╕ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡рд╣ рдРрд╕рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред
рдЖрдЗрдП рдХреБрдЫ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рджреЗрдЦреЗрдВ рдЬреЛ рдпрд╣ рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдЕрд░реНрде рд╣реИред
рдкрд╣рд▓рд╛, рд╢рд╛рдпрдж рдереЛрдбрд╝рд╛ рдЕрдЬреАрдм рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рд▓реЛрдЧреЛрдВ рдХреЛ рдпрд╣ рд╕рдордЭ рдХрд░ рдЙрдбрд╝рд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдХрд┐ рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд░рдо "рд╕рд╣реА" рдЫрд╛рдкреЗрдЧрд╛:
Module Program Sub Main() Dim i As Integer = 0 If i = Nothing Then Console.WriteLine("True") End If End Sub End Module
github рд╕реНрд░реЛрдд рдХреЛрдбрдХрд╛рд░рдг рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ: рдЖрдк
Integer (0)
рдХреА рдЙрд╕рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди
Integer (0)
рд╕рд╛рде рд╣реА
Integer (0)
рддреБрд▓рдирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╕рдорд╕реНрдпрд╛ VB2005 / 2008 рдореЗрдВ рд╣реЛрддреА рд╣реИ рдЬрдм рдЖрдк рдЕрд╢рдХреНрдд рд╕рд╛рд░реНрдердХ рдкреНрд░рдХрд╛рд░ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ:
Module Program Sub Main() Dim i = If(False, 1, Nothing) End Sub End Module
github рд╕реНрд░реЛрдд рдХреЛрдбрд╕рдордЭ рдореЗрдВ рдЖрдпрд╛, рдХрд┐ рдХреЛрдИ
i
рдХреИрд╕реЗ рдЯрд╛рдЗрдк рдХрд░ рд╕рдХрддрд╛ рд╣реИ
Integer?
(
Nullable(Of Integer)
(
Nullable(Of Integer)
)ред рд▓реЗрдХрд┐рди рдпрд╣ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐
Nothing
рд╕рдВрджрд░реНрдн рд╕реЗ рдкреНрд░рдХрд╛рд░
Nothing
рдорд┐рд▓рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рд╕рдВрджрд░реНрдн рдореЗрдВ рдПрдХрдорд╛рддреНрд░ рдкреНрд░рдХрд╛рд░ рджреВрд╕рд░реЗ рдСрдкрд░реЗрдВрдб рд╕реЗ рдЖрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдПрдХ рд╕рд░рд▓
non-nullable Integer
(рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ,
Nothing
рдХрднреА рднреА рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдирд╣реАрдВ рд╣реИ)ред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рджреЗрдЦрдиреЗ рдХрд╛ рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рд╣реИ:
Module Program Sub Main() M(Nothing) End Sub Sub M(i As Integer) Console.WriteLine("Non-nullable") End Sub Sub M(i As Integer?) Console.WriteLine("Nullable") End Sub End Module
github рд╕реНрд░реЛрдд рдХреЛрдбрдлрд┐рд░, рдпрд╣рд╛рдБ, рд╕рд╣рдЬ рд░реВрдк рд╕реЗ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐
Nothing
"рдЕрд╢рдХреНрдд" рд╕рдВрдХреЗрдд
Nothing
рдЬреЛрдбрд╝рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рднрд╛рд╖рд╛ рдПрдХ рдЕрдзрд┐рднрд╛рд░ рдХрд╛ рдЪрдпрди рдХрд░рддреА рд╣реИ рдЬреЛ рдЕрд╢рдХреНрдд рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ (
non-nullable
, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ "рд╕рдмрд╕реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ" рд╣реИ)ред рдХрдо рд╕реЗ рдХрдо, рдпрд╣ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ C # рдореЗрдВ рдЕрд╢рдХреНрдд рдХреА рддрд░рд╣, рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдкрд░
Nothing
рд▓рд╛рдЧреВ
Nothing
рд╣реИ, рдФрд░ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдкрд╡рд╛рдж рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рдЪреБрдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдлрд┐рд░ рд╕реЗ рдЧрд▓рдд рд╡рд┐рдЪрд╛рд░ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ
Nothing = null (Is null?)
ред
Nuance: C # 7.1 рдореЗрдВ рдПрдХ рдирдпрд╛
default
рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ VB рдореЗрдВ
Nothing
рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк n рдХреЗ рдмрдЬрд╛рдп
default
C # рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдКрдкрд░ рджрд┐рдП рдЧрдП рд╕рднреА рддреАрди рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВ,
рддреЛ рдЖрдкрдХреЛ рдмрд┐рд▓реНрдХреБрд▓ рд╕рдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдорд┐рд▓рддрд╛ рд╣реИ ред
рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ? рдХрдИ рд╕реБрдЭрд╛рд╡ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рдХреЛрдИ рдирд╣реАрдВ рдЬреАрддрд╛ рд╣реИ:
- рд╣рд░ рдмрд╛рд░ рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рджрд┐рдЦрд╛рдПрдВ
Nothing
рдПрдХ рд╕рд╛рд░реНрдердХ рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдпрд╣ null
рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рдХрд╛рд░ рдореЗрдВ null
рдирд╣реАрдВ рд╣реИред - рдЦреВрдмрд╕реВрд░рддреА рд╕реЗ
0
, 0.0
, ChrW(0)
, False
, #1/1/0001 12:00:00 AM#
ChrW(0)
#1/1/0001 12:00:00 AM#
рдпрд╛ New T
(рдХрд┐рд╕реА рднреА рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди) рдХрд╛ рд╣рд░ рдмрд╛рд░ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВ, рдЬрдм рднреА рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рдЗрд╕рдХрд╛ рдорд╛рди рдПрдХ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реЛ рдКрдкрд░ рд╕реВрдЪреАрдмрджреНрдз рд╣реИред - рдПрдХ рдирдпрд╛ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдЕрд░реНрде рдЬреЛрдбрд╝реЗрдВ "рдЕрд╢рдХреНрдд, рдирд╣реАрдВ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ!"
Null
рдпрд╛ Nothing?
- рдкреНрд░рддреНрдпрдп (?) рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдирдпрд╛ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдЬреЛрдбрд╝реЗрдВ, рдЬреЛ рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд╢рдХреНрдд рдореЗрдВ рдорд╛рди рдХреЛ рд▓рдкреЗрдЯрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП
If(False, 0?, Nothing)
- рдмрд┐рд▓реНрдЯ-рдЗрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд╢рдХреНрдд рд░реВрдкрд╛рдВрддрд░рдг рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЖрд╕рд╛рди рд╣реИ рдХрд┐ рд╡реЗ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХреЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
If (False, CInt? (0), Nothing)
рдореИрдВ рдЖрдкрдХреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдФрд░ / рдпрд╛
рдЯреНрд╡рд┐рдЯрд░ рдкрд░ рд╕реБрдирдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред
рдЗрд╕рд▓рд┐рдП рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ:
- рдкреВрд░реНрд╡ рд╕рдордп - VB6 рдФрд░ VBA рдореЗрдВ "рдирдерд┐рдВрдЧ", "рдирд▓", "рдЦрд╛рд▓реА" рдФрд░ "рдорд┐рд╕рд┐рдВрдЧ" рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЪреАрдЬреЗрдВред
- 2002 - VB.NET рдореЗрдВ рдХреЗрд╡рд▓
Nothing
(рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрджрд░реНрдн рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди), рдФрд░ C # рдореЗрдВ - рдХреЗрд╡рд▓ null
ред - 2005 - рд╕реА #
default(T)
(рдЯрд╛рдЗрдк T
рдХрд╛ рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди default(T)
рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдирдП рдЬреЛрдбрд╝реЗ рдЧрдП рдЬреЗрдирд░рд┐рдХ рдПрдХ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рдПрдХ рдореВрд▓реНрдп рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдпрд╣ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдПрдХ рд╕рдВрджрд░реНрдн рдкреНрд░рдХрд╛рд░ рдпрд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ; VB рдХреБрдЫ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ Nothing
рджреНрд╡рд╛рд░рд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрдВрдж рд╣реИред - 2017 - C #
default
(рд╕рдВрджрд░реНрдн рдореЗрдВ default
рдорд╛рди) рдЬреЛрдбрд╝рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХрдИ рдкрд░рд┐рджреГрд╢реНрдп рд╣реИрдВ рдЬрд┐рдирдореЗрдВ T
рдирд┐рд░реНрджрд┐рд╖реНрдЯ T
рдЕрдирд╛рд╡рд╢реНрдпрдХ рдпрд╛ рдЕрд╕рдВрднрд╡ рд╣реИ
VB
Null
рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ (рдпрд╛ рд╕рдорддреБрд▓реНрдп) рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рд╡рд┐рд░реЛрдз рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐:
- рд╕рд┐рдВрдЯреИрдХреНрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рддреЛрдбрд╝рдиреЗ рд╡рд╛рд▓рд╛ рд╣реЛрдЧрд╛ред
- рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рд╕рдВрджрд░реНрдн рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЪреАрдЬреЛрдВ рдХрд╛ рдорддрд▓рдм рд╣реЛрдЧрд╛ред
- рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдмрд╣реБрдд рдЕрд╕рдВрдЧрдд рд╣реЛрдЧрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
Nothing?
); рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рдЖрдкрдХреЛ Nothing
рдФрд░ Nothing?
рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╝реЛрд░ рд╕реЗ рдмрд╛рдд рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ Nothing?
рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдХреБрдЫ рд╕рдордЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдПред - рд╡рд╛рдХреНрдп-рд╡рд┐рдиреНрдпрд╛рд╕ рдмрд╣реБрдд рдмрджрд╕реВрд░рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдЙрджрд╛ред
Nothing?
)ред - рдЕрд╢рдХреНрдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА
Nothing
рдмрдВрдж Nothing
, рдФрд░ рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдЬреНрдпрд╛рджрд╛рддрд░ рд╕рдордп рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмреЗрдорд╛рдиреА рд╣реЛрдЧрд╛ред - рд╣рд░ рдЬрдЧрд╣, рд╕рднреА рджрд╕реНрддрд╛рд╡реЗрдЬ рдФрд░ рд╕рднреА рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рдирдП рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдкреНрд░рдЪрд▓рд┐рдд
Nothing
рдШреЛрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред Nothing
рдФрд░ Null
рдЕрднреА рднреА рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рджреЗрд░ рд╕реЗ рдмрд╛рдзреНрдпрдХрд╛рд░реА, рдкрд░рд┐рд╡рд░реНрддрди, рдЖрджрд┐ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдПрдХ рд╣реА рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░реЗрдВрдЧреЗред- рдпрд╣ рдЫреБрд░рд╛ рдШреЛрдВрдкрдиреЗ рдореЗрдВ рдмрдВрджреВрдХ рдХреА рддрд░рд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдХреБрдЫ рдЗрд╕ рддрд░рд╣ред
рдСрдлрдЯреЙрдкрд┐рдХ (рд▓реЗрдХрд┐рди рд╕рдВрдмрдВрдзрд┐рдд)рдпрд╣рд╛рдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдКрдкрд░ рджрд┐рдП рдЧрдП рджреВрд╕рд░реЗ рдХреЗ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдмрд┐рдирд╛ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдиреБрдорд╛рди рдХреЗ:
Module Program Sub Main() Dim i As Integer? = If(False, 1, Nothing) Console.WriteLine(i) End Sub End Module
github рд╕реНрд░реЛрдд рдХреЛрдбрдпрд╣ рдХрд╛рд░реНрдпрдХреНрд░рдо 0. рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдареАрдХ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рджреВрд╕рд░реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдЕрд▓рдЧ, рдпрджреНрдпрдкрд┐ рд╕рдВрдмрдВрдзрд┐рдд, рд╕рдорд╕реНрдпрд╛ рдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИред рд╕рд╣рдЬ рд░реВрдк рд╕реЗ, рдХреНрдпрд╛
Dim i as Integer? = If(False, 1, Nothing)
Dim i as Integer? = If(False, 1, Nothing)
Dim i As Integer? : If False Then i = 1 Else i = Nothing
рд░реВрдк рдореЗрдВ рдПрдХ рд╣реА рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИ
Dim i As Integer? : If False Then i = 1 Else i = Nothing
Dim i As Integer? : If False Then i = 1 Else i = Nothing
ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕рд╢рд░реНрдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐
(If)
рдЕрдкрдиреЗ рдСрдкрд░реЗрдВрдб рдХреЛ рдЕрдВрддрд┐рдо рдкреНрд░рдХрд╛рд░ рдХреА "рд╕реВрдЪрдирд╛" рд╕реЗ рдЧреБрдЬрд░рддреА рдирд╣реАрдВ рд╣реИред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдпрд╣ VB рдореЗрдВ рдЙрди рд╕рднреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЛ рддреЛрдбрд╝рддрд╛ рд╣реИ рдЬреЛ рдЗрд╕ рдмрд╛рдд рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЕрдВрддрд┐рдо (рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ) рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреНрдпрд╛ рд╣реИ (
Nothing
,
AddressOf
,
AddressOf
рдПрдХ рд╕рд░рдгреА, рд▓рдВрдмреЛрджрд░ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдФрд░ рдкреНрд░рдХреНрд╖реЗрдкрд┐рдд рддрд╛рд░) рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЧреИрд░-рд╕рдВрдХрд▓рди рд╕реЗ рд▓реЗрдХрд░ рдЪреБрдкрдЪрд╛рдк рдЧрд▓рдд рдорд╛рди рдмрдирд╛рдиреЗ рддрдХ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рдеред рдЬреЛрд░ рд╕реЗ рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдлреЗрдВрдХрдирд╛ред рдпрд╣рд╛рдБ рдПрдХ рдЕрдкреНрд░рдпреБрдХреНрдд рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
Module Program Sub Main() Dim i As Integer? = If(False, 1, Nothing) Console.WriteLine(i) Dim operation As Func(Of Integer, Integer, Integer) = If(True, AddressOf Add, AddressOf Subtract) End Sub Function Add(left As Integer, right As Integer) As Integer Return left + right End Function Function Subtract(left As Integer, right As Integer) As Integer Return left - right End Function End Module
github рд╕реНрд░реЛрдд рдХреЛрдбрдпрд╣ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп,
If
рдпрд╣ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рджреЛрдиреЛрдВ
AddressOf
рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЛ
AddressOf
рд░реВрдк рд╕реЗ
Func(Of Integer, Integer, Integer)
рдкреНрд░рддрд┐рдирд┐рдзрд┐рдпреЛрдВ
Func(Of Integer, Integer, Integer)
рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд╣реИред
,
Nothing
null (),
Nothing
nullability
()
If(,,)
Nothing
( ) () тАФ ,
.
47. ;
┬л3┬╗:
Module Program Sub Main() Dim i As Integer = 3 M((i)) Console.WriteLine(i) End Sub Sub M(ByRef variable As Integer) variable = -variable End Sub End Module
GitHubC# ┬л-3┬╗. , VB тАФ ,
. ,
M(3)
,
M(i)
,
i
, . C# ( ) , M .
? VB
. Quick Basic (Copyright 1985), . ,
2002 , .
тДЦ1: ┬л ┬╗ , Visual Basic .NET.
тДЦ2: Roslyn ( ,
( ) ( )), : . C# ,
((a + b) * c a + (b * c))
. , C#, C++, , , , . : ┬л VB?┬╗ ┬л C#?┬╗
source.roslyn.io тАФ
BoundParenthesized
VB C#. , , .
48. Me
тАФ
VB.NET
Me
. , - , тАФ , Me Structure . Me . C#
this
,
this
.
49.
VB, , :
Class C Sub M() Extension() End Sub End Class Module Program Sub Main() End Sub <Runtime.CompilerServices.Extension> Sub Extension(c As C) End Sub End Module
GitHubC# ( something.Extension). , C#, ,
this.Extension()
.
? ,
'Me.'
, , , , . VB.NET . , .
50. (Static imports will not merge method groups)
VB ┬л ┬╗ (Java-, C# VB). ,
Imports System.Console
WriteLine()
. 2015 C# . VB Shared- ,
System.Console
System.Diagnostics.Debug
,
WriteLine
, . C# , , .
? , , VB , C# ( ). , ( , ), тАж , .
, VB , VB , , , , , (
#6 ). VB . , VB 2002 .
51 52. (Partial-name qualification & Smart-name resolution)
:
- , тАФ ( ).
System
System.Windows.Forms
тАФ , , System
System.Windows
System.Windows
System.Windows.Forms
. - , , , .
System
Windows
, Windows
Form
.
, , . . VB Imports ,
using
C# .
, VB
System
,
System
,
System
. , . ,
ExtensionAttribute
,
<Runtime.CompilerServices.Extension>
<System.Runtime.CompilerServices.Extension>
.
C# .
using System
System.Threading
Threading
.
, C# , . ,
System
,
System.Threading
Threading
. , , , , .
, , VB, C# ,
Imports
/
using
, C# using , , using .
(Quantum Namespaces) ( ), ! VB , . ,
System
ComponentModel
System.Windows.Forms
ComponentModel
?
ComponentModel
. ,
ComponentModel.PropertyChangedEventArgs
, ( , ).
System.Windows.Forms
(, , , , ), (ambiguity errors).
VB2015 (Smart Name Resolution),
System
System.Windows.Forms
ComponentModel
, ,
System.ComponentModel
System.Windows.Forms.ComponentModel
, . , , , , . , , , ..
ComponentModel.PropertyChangedEventArgs
System.ComponentModel.PropertyChangedEventArgs
,
System.Windows.Forms.ComponentModel.PropertyChangedEventArgs
. , .
,
Windows
, ( ) ( ) ( ).
WinForms/WPF
UWP
.
53. Add
#33 , VB - , . , , тАФ , :
Class Contact Property Name As String Property FavoriteFood As String End Class Module Program Sub Main() Dim contacts = New List(Of Contact) From { {"Leo", "Chocolate"}, {"Donnie", "Bananas"}, {"Raph", "The Blood of his Enemies"}, {"Mikey", "Pizza"} } End Sub <Runtime.CompilerServices.Extension> Sub Add(collection As ICollection(Of Contact), name As String, favoriteFood As String) collection.Add(New Contact With {.Name = name, .FavoriteFood = favoriteFood}) End Sub End Module
GitHubC# , Roslyn C#, . , (
, ), VS2015.
54. ,
, VB
Dim buffer(expression) As Byte
Dim buffer = New Byte(expression) {}
expression + 1
.
Microsoft BASIC,
DIM
( dimension тАФ ). , , , : 0 expression. Microsoft BASIC 1 ( , 1984), ( ), 2002 .
, - , , VB , BASIC C , , C, C- . ,
buffer(10)
0 10, 9!
55. VB - , C#
, . , VB ( ) , тАФ . :
CType({1, 2, 3}, Short())
CType(New Integer() {1, 2, 3}, Short ())
, Integer
Short
.CType({1, 2, 3}, Short())
New Short() {1, 2, 3}
. .
, , VB , C#. , :
Dim empty As Integer() = {}
:
Dim array As Predicate(Of Char)() = {AddressOf Char.IsUpper, AddressOf Char.IsLower, AddressOf Char.IsWhitespace}
( ):
Dim byteOrderMark As Byte() = {&HEF, &HBB, &HBF} '
.
,
IList(Of T)
,
IReadOnlyList(Of T)
,
ICollection(Of T)
,
IReadOnlyCollection(Of T)
IEnumerable(Of T)
, , ,
ParamArray IEnumerable
.
? , VB. , . 2008 VB C# ┬л┬╗ {}, - ( , , ). , , , + , . .
56.
, LINQ. , .
, ,
.
57. CType, DirectCast C#
/ VB C#.
VB
CType
:
- ;
- ( );
- , ,
Long
Integer
(. ┬л┬╗); - (unboxes) ;
- ;
- (
CTypeDynamic
).
VB
DirectCast
:
- ;
- ;
- (
Integer Byte
); - ;
- ( );
- .
C# тАФ
(Type)expression
:
CType
C# , . , . VB C# , IL .
, C#, , . .
,
CType
, (, ).
CType
,
DirectCast
, . , , IL :
Object
(
ValueType
) CLR ┬лunbox┬╗ VB-, , (,
Short
Integer
). , , C#. . , .
? . , , , , .
58. ┬л┬╗
, ,
5 Mod 2 * 3
5 VB, ┬л┬╗ C#
5 % 2 * 3
3.
, , . , (, (\) VB), , ,
.
!59. ; + & ; + VB <> + C#
, + () & () VB + C#.
String
:VB- тАЬ1тАЭ + 1 = 2.0
- тАЬ1тАЭ & 1 = тАЬ11тАЭ
C#, + &VB- тАЬobj: тАЬ + AppDomain.CurrentDomain ' Error: + not defined for String and AppDomain.
- тАЭobj: тАЬ & AppDomain.CurrentDomain ' Error: & not defined for String and AppDomain.
- тАЭobj: тАЬ + CObj(AppDomain.CurrentDomain) ' Exception, no + operator found.
- тАЭobj: тАЬ & CObj(AppDomain.CurrentDomain) ' Exception, no & operator found.
C#- ┬лobj: ┬╗ + AppDomain.CurrentDomain == ┬лobj: ┬╗ + AppDomain.CurrentDomain.ToString()
- ┬лobj: ┬╗ + (object)AppDomain.CurrentDomain == ┬лobj: ┬╗ + AppDomain.CurrentDomain.ToString()
- ┬лobj: ┬╗ + (dynamic)AppDomain.CurrentDomain == ┬лobj: ┬╗ + AppDomain.CurrentDomain.ToString()
:VB- 1 + 1 = 2
- 1 & 1 = тАЬ11тАЭ
C#String Enum:VB- тАЬToday: тАЭ + DayOfWeek.Monday ' Exception: String ┬лToday: ┬╗ cannot be converted to Double.
- тАЬToday: тАЭ & DayOfWeek.Monday = тАЬToday: 1тАЭ
- тАЬToday: тАЭ & DayOfWeek.Monday.ToString() = тАЬToday: MondayтАЭ
C#- ┬лToday: ┬╗ + DayOfWeek.Monday == ┬лToday: Monday┬╗
: , + VB, - . + , , - . рдХреНрдпреЛрдВ? :
- тАЬ10тАЭ тАФ тАЬ1тАЭ = 9.0,
- тАЬ5тАЭ * тАЬ5тАЭ = 25.0,
- тАЬ1тАЭ << тАЬ3тАЭ = 8,
- тАЬ1тАЭ + 1 = 2.0,
- тАЬ1тАЭ + тАЬ1тАЭ = тАЬ11тАЭ
. тАФ .
: +,
. , &, , (
, ). , , .
60. : 3 / 2 = 1,5
тАФ :
┬л ?┬╗ ред ┬л┬╗. :
┬л . ?┬╗VB C#.
C, , ,
┬л 5 9?┬╗ , \. , , , , 0 ( , -
INumeric
).
61. ^ Math.Pow
Math.Pow
. , . , (
custom
) ( ,
System.Numerics.BigInteger
).
: F# **, VB F# :
op_Exponent
op_Exponentiation
. F#
Pow
. . , .
62. =/<> /
C# '==' () , , ( ). VB . VB (
Is/IsNot
) .
: - Roslyn , . . . VB , = , C# , , , .
63. =/<> ( )
VB .
-, ( ) - ( ), ,
Option Compare Binary
Option Compare Text
.
Option Compare Binary
, , VS.
( ), ,
API. :
- /: тАЬAтАЭ = тАЬaтАЭ/тАЬAтАЭ <> тАЬaтАЭ
- : тАЬAтАЭ > тАЬaтАЭ
Select Case: Select Case тАЬAтАЭ : Case тАЬaтАЭ
:
Equals: тАЬAтАЭ.Equals(тАЬaтАЭ)
Contains: тАЭAтАЭ.Contains(тАЬaтАЭ)
Distinct: From s In {тАЬAтАЭ, тАЬaтАЭ} Distinct
, , : VB . ,
Option Compare
, ┬лEmpty┬╗.
Module Program Sub Main() Dim s As String = Nothing If s = "" Then Console.WriteLine("Empty") End If End Sub End Module
GitHubs = "" VB тАФ
String.IsNullOrEmpty(s)
.
, , , , , . , , .
? Option Compare Text
, , . , , .
, , , , .
, , . , . , , (collation) SQL Server, . , VB VB6, VBA Office, Excel Access, VBScript Windows, -, -тАж . , , .NET API , Option Compare Text, . , .NET API, .
null, , . VB6 .
String
"". , VB
String
. VB,
Left
Mid
,
String
. null .
Len(CStr(Nothing)) = 0
Left(CStr(Nothing)
,
5) = ""
,
CStr(Nothing).Length
CStr(Nothing).Trim()
.
,
?
ред ( ).
:, , , . ! VB , ,
"String A" = "String B"
,
Microsoft.VisualBasic.CompilerServices.Operators.CompareString
, - , , . LINQ- . , VB ( ). , , - , . LINQ-to-SQL, LINQ-to-Entities , Microsoft. , VB , !
, C#, VB, LINQ . : 1) , VB , , 2) , VB , , LINQ-. , VB ().
: , ┬л API┬╗.
Option Compare
VB,
InStr.Replace
Microsoft.VisualBasic.Strings
. , ?
, , , ? , , , : , , .
64. Nullable ( null )
VB C# - nullable. , (null-propagation).
SQL, , , null. , (, +), null, null.
"?."
:
obj?.Property obj
null, null, .
nullable , VB, C# . - : .
VB, nullable , null, null . 1 + null null null + null null. , (, = <>) C#:
- VB,
Is/IsNot
, Boolean?
- C# (==, !=, >, <, >=, <=)
bool
bool?
VB ( nullable ) null
null .
Boolean
=
Boolean?
,
True
,
False
null
.
. C#
non-nullable bool
,
.
,
. null. VB
NULL =
NULL тАФ
NULL , TRUE.
, :

.
Null , , , C# .
. C# VB,
┬л null?┬╗ C#
(if (value == null))
. VB , VB (=/<>)
(Is/IsNot)
, VB
Is Nothing
non-nullable Boolean
.
, VB null, null.
And/AndAlso
Or/OrElse
.
Integer?
( ), VB, C# null, :
- 1 AND NULL NULL
- 1 OR NULL NULL
Boolean?
, VB .
- FALSE AND NULL FALSE
- TRUE OR NULL TRUE
- TRUE AND NULL NULL
- FALSE OR NULL NULL
,
True/False
, , null. ,
AndAlso
OrElse
.
C# (&&/||) (&/|)
nullable boolean (bool?)
. , , non-nullable boolean nullable boolean .
?VB , - :
Imports System.ComponentModel Class BindableRange Implements INotifyPropertyChanged Property _EndDate As Date? Property EndDate As Date? Get Return _EndDate End Get Set(value As Date?)
GitHub, , , , ┬лEndDate change┬╗ . , ,
VB null ? ,
EndDate
, , ,
Nothing
.
VB :
┬л, , . ┬╗ :
If value <> _EndDate Then _EndDate = value RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(NameOf(EndDate))) End If
! . ,
non-nullable . ,
. , :
If value Is Nothing AndAlso _EndDate Is Nothing Then Return If value <> _EndDate Then Return
?, C# , VB. ( nullable , ), , null.
null тАФ
┬л┬╗ ┬л ┬╗ . .
null ┬л ┬╗ ┬л┬╗ . , , : comparer, , comparer . Roslyn,
Optional(Of T)
, , , null, , .
, NULL ┬л ┬╗, VB :
- , ┬л , ?┬╗ ┬л ┬╗.
- : ┬л , ?┬╗ ┬л ┬╗.
, ,
SQL- . , NULL SQL , NULL. . , , NULL . , . , , ( ). , , , , , NULL , SQL ( ).
VB.
nullable 2008 , VB ?LINQ to SQL
VB , , , , , , LINQ- . !
. SQL Server, ,
SET ANSI_NULLS OFF , SQL- C#,
WHERE Column = NULL
. , , OFF ( ). SQL Server ( ) . :
┬л ? . , - Option ANSI_NULLS Off VB.NET?┬╗ ред :

, , , , , SQL Server, VB.
рдХреБрдЫ рдЗрд╕ рддрд░рд╣ред
65. 1:1
, VB , , , . VB - , .
, , , , . VB , , , , , VB .
9.8.4 .
66. Function() a = b () => a = b
. ,
() => expression
C#
Function() expression
VB.
Function()
-, - , VB.
a = b
,
a
b
(
Boolean
),
b
. - (delegate relaxation) VB ( -) Sub- ( ). .
() => a = b
C# VB тАФ
Sub() a = b
. тАФ -
, .
=, , . (
Sub
-) , (
Function
-) .
67. Async Function
async void
C#
async
-, , ,
Task
void
, ,
Task
, .
VB.NET , ..
void Async
Async Sub
,
Task
Task(Of T)
тАФ
Async Function
. , , VB, (relaxing)
Task Async
void
.
Async Sub
, , .
68. () VB
, VB:
Class Foo
GitHubVB,
C#. -,
Foo
Select
, ,
Where
.
Select
, ,
Select
,
Integer
. C# ,
.Where
(
Select
). , , .
LINQ API. , VB C#, . , C# , ┬л ┬╗, , , , . - , ┬л┬╗ , , -.
, VB
, , C# , .
, Roslyn, :
┬л (range variables)?┬╗ ┬л ?┬╗ ред . , VB ,
Let
, C# тАФ . , VB, C# 2012 , :
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace CSharpExamples { struct Point { public int X { get { return 0; } } public int Y { get { return 0; } } } class Foo { public IEnumerable<Point> Select<T>(Func<string, T> selector) { return new Point[0]; } } static class Program { static void Main(string[] args) { var c = new Foo(); var q = from X in c let Y = "" select Y.CompareTo(-1); } } }
GitHub, тАФ ? X, тАФ
string
.
let
Y
, string. , Point,
X
Y
, ,
int
X
Y
, ┬л┬╗ .
Y
select
,
int
int
`, тАж .
,
┬л ?┬╗ ред VS2015 C# , ┬л┬╗. , Roslyn C#, . , ( , ), - .
? , , , . , , VB C# .
69 70. As
From
cast
; 'As'
( , тАж)
From x As Integer In y
VB, ,
from int x in y
C#.
-, C# , ( ) .
.Cast<T>()
. VB , , , , .
-, ,
.Cast
( ). , , ,
.Cast
.Select
.
? . VB . ,
For Each x As T In collection
,
As T
.
From
As
For Each
( ,
As
).
71-75. Select
, ,
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
From x In y Where x > 10
. , Select
.From x In y Select x Where x > 10
.From x In y Select x
, From x In y Select x = x
, x
тАФ x
, x
тАФ Select
. Select
.From x In y Select z = x.ToString()
, x
.From x In y Select x.FirstName
, From x In y Select FirstName = x.FirstName
.From x In y Select x.FirstName, x.LastName
тАФ From x In y Select New With {x.FirstName, y.LastName}
, , . IEnumerable(Of $AnonymousType$)
, .
? (
Amanda Silver ). !
- ,
Select
, SQL , Select
, . LINQ VB Select , SQL, From . - , , .
- ,
Select
, SQL, - - . VB comma separated ( ) -. - ,
Select
, , , , , , , тАФ .
? , , - , , :
Module Program Sub Main() Dim numbers = {1, 2, 3}
GitHubBC36606: Range variable name cannot match the name of a member of the 'Object' class
BC30978: Range variable 'тАж' hides a variable in an enclosing block or a range variable previously defined in the query expression
тАФ ,
Object
, , , , . (
n.ToString()
), . , .
76+.
. тАж тАж . тАж 20-25 (
тАФ .. ).
рд╡рд┐рдЬреНрдЮрд╛рдкрди рдХрд╛ рдорд┐рдирдЯред 15-16 - .NET- DotNext 2019 Piter . , . , . .