
2018 рдореЗрдВ TIOBE
рд░реЗрдЯрд┐рдВрдЧ рдХреЗ рдЕрдиреБрд╕рд╛рд░, VB.NET рдиреЗ рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рдореЗрдВ C # рдХреЛ рдкреАрдЫреЗ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ред рд╕рдВрдпреЛрдЧ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдлрд░рд╡рд░реА рдореЗрдВ, C # рдХреЗ рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ, рдПрд░рд┐рдХ рд▓рд┐рдкрд░реНрдЯ
рдиреЗ рдкрд╛рдардХреЛрдВ рд╕реЗ рдЕрдкрдиреЗ рджреЛрд╕реНрдд, рд░реЛрдЬрд▓рд┐рди рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рдкреВрд░реНрд╡ рдЯреАрдордореЗрдЯ рдФрд░ рд╕рдВрдпреЛрдЬрди рдореЗрдВ, рдПрдХ рдЙрддреНрд╕рд╛рд╣реА B.NET рдлреИрди,
рдПрдВрдердиреА рдЧреНрд░реАрди рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХрд╛
рдЖрдЧреНрд░рд╣ рдХрд┐рдпрд╛ ред рдПрд░рд┐рдХ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, "рдРрд╕реЗ рд╕рдВрд╕рд╛рдзрди рдЙрди рд╡рд┐рд╢реЗрд╖рдЬреНрдЮреЛрдВ рд╕реЗ рдЧрд╣рди рд╡рд┐рд╡рд░рдг рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдкреНрд░рд▓реЗрдЦрди рдХреЛ рдкрдврд╝рдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИред" рд╣рдо рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдПрдВрдердиреА рдЧреНрд░реАрди рдХреЗ рд▓реЗрдЦ "VB.NET рдФрд░ C # рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреА рдПрдХ рд╡реНрдпрд╛рдкрдХ рд╕реВрдЪреА" рдХреЗ рдЕрдиреБрд╡рд╛рдж рдХрд╛ рдкрд╣рд▓рд╛ рднрд╛рдЧ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреЗ рд╣реИрдВред рд╢рд╛рдпрдж рдЗрди рдЕрдВрддрд░реЛрдВ рдореЗрдВ рдпрд╣ рдареАрдХ рд╣реИ рдХрд┐ рдЗрди рднрд╛рд╖рд╛рдУрдВ рдХреА рд░реЗрдЯрд┐рдВрдЧ рдХреА рдЧрддрд┐рд╢реАрд▓рддрд╛ рдХрд╛ рд░рд╣рд╕реНрдп рдирд┐рд╣рд┐рдд рд╣реИред
рд▓рдЧрднрдЧ рдЖрдзреЗ рдЬреАрд╡рди рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рджреЛ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп .NET рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд╕рдорд╛рди рдпрд╛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдирдЧрд┐рдирдд рдЪрд░реНрдЪрд╛рдУрдВ рдореЗрдВ рднрд╛рдЧ рд▓рд┐рдпрд╛ рдФрд░ рднрд╛рдЧ рд▓рд┐рдпрд╛ рд╣реИред рдкрд╣рд▓реЗ, рдПрдХ рд╢реМрдХрд┐рдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ, рдлрд┐рд░ рдПрдХ рдкреЗрд╢реЗрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдФрд░ рдЕрдВрдд рдореЗрдВ, рдПрдХ рдЧреНрд░рд╛рд╣рдХ рд╡рдХреАрд▓, рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореИрдиреЗрдЬрд░ рдФрд░ рднрд╛рд╖рд╛ рдбрд┐рдЬрд╛рдЗрдирд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдЕрддрд┐рд╢рдпреЛрдХреНрддрд┐ рдХреЗ рдмрд┐рдирд╛ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВрдиреЗ рдХрд┐рддрдиреА рдмрд╛рд░ рд╕реБрдирд╛ рдпрд╛ рдкрдврд╝рд╛ рдЬреИрд╕реЗ:
"... VB.NET рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ IL рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдПрдХ рдкрддрд▓реА рдкрд░рдд рд╣реИ, рдЬреИрд╕реЗ C # ..."
рдпрд╛
"... VB.NET рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд┐рд░реНрдл C # рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХреЛрдИ рдЕрд░реНрдзрд╡рд┐рд░рд╛рдо рдирд╣реАрдВ рд╣реИ ..."
рдЬреИрд╕реЗ рдХрд┐ рднрд╛рд╖рд╛рдПрдБ рдПрдХ XML рд░реВрдкрд╛рдВрддрд░рдг рдпрд╛ рд╕реНрдЯрд╛рдЗрд▓ рд╢реАрдЯ рдереАрдВред
рдФрд░ рдЕрдЧрд░ рдХреБрдЫ рдЙрддреНрд╕рд╛рд╣реА рдЖрдЧрдВрддреБрдХ рдЗрд╕реЗ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рдирд╣реАрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЕрдХреНрд╕рд░ рдпрд╣ рд╕рд╡рд╛рд▓реЛрдВ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реЛрддрд╛ рд╣реИ рдЬреИрд╕реЗ:
"рд╣реИрд▓реЛ, рдПрдВрдердиреА! рдореИрдВ рдПрдХ рд╣реА рд╕реНрдерд╛рди рдкрд░ рдЗрддрдиреЗ рдЫреЛрдЯреЗ рдЕрдВрддрд░ рдореЗрдВ рдЖрдпрд╛ - рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдмрдЧ рд╣реИ? рдпреЗ рджреЛрдиреЛрдВ рдЕрдиреНрдпрдерд╛ рд╕рдорд╛рди рднрд╛рд╖рд╛рдПрдВ рдХреИрд╕реЗ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рдЬреЛ рдЗрд╕ рджреБрдирд┐рдпрд╛ рдореЗрдВ рд╕рднреА рдЕрдЪреНрдЫреЗ рдФрд░ рдкрд╡рд┐рддреНрд░ рдХреЗ рдирд╛рдо рдкрд░ рд╕рдорд╛рди рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдЗрд╕ рдПрдХ рд╣реА рд╕реНрдерд╛рди рдкрд░ рдлреИрд▓рддреА рд╣реИрдВ? рд╣рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЕрдиреНрдпрд╛рдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?"
рдЕрд▓рдЧ, " рдЬреИрд╕реЗ рдХрд┐ рд╡реЗ рдПрдХ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рддрдХ рдПрдХ рд╣реА рдереЗ, рдФрд░
рдлрд┐рд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рдЬрд╛рддрд┐рдпрд╛рдВ рдмрди рдЧрдИрдВред рд╣рд╛!
рд▓реЗрдХрд┐рди рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдореИрдВ Microsoft рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрддрд╛, рдореИрдВ рднреА рд╢рд╛рдпрдж рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдкрд░ рдХрд╛рдпрдо рд░рд╣рддрд╛ рдФрд░ рд╡рд┐рд░реЛрдзрд┐рдпреЛрдВ рдХреЛ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдпрд╛ рдХрд┐рд╕реА рдХреЛ рдЖрд╢реНрд╡рд╕реНрдд рдХрд░рдиреЗ рдХреЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рддрд╛ред рдореИрдВ рдЙрд╕рдХреЗ рдЖрдХрд░реНрд╖рдг рдХреЛ рд╕рдордЭрддрд╛ рд╣реВрдВред рдпрд╣ рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рд╣реИ рдФрд░ рджреЛрд╣рд░рд╛рдиреЗ рдореЗрдВ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред рд▓реЗрдХрд┐рди рд░реЛрдЬрд▓рд┐рди (рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ VB рдФрд░ C # рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдХреНрд░реИрдЪ рд╕реЗ рдкреБрдирд░реНрд▓реЗрдЦрди) рдкрд░ 5 рд╕рд╛рд▓ рддрдХ рдХрд╛рдо рдХрд░рдиреЗ рдкрд░, рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐
рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХрд┐рддрдирд╛
рдЕрд╕рддреНрдп рд╣реИ ред рдореИрдВрдиреЗ рджреЛрдиреЛрдВ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд╣рд░ рдЗрдВрдЪ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрд╡рд▓рдкрд░реНрд╕ рдФрд░ рдкрд░реАрдХреНрд╖рдХреЛрдВ рдХреА рдПрдХ рдЯреАрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛, рд╕рд╛рде рд╣реА рд╕рд╛рде рджреЛрдиреЛрдВ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреА рд▓рд╛рдЦреЛрдВ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рд╢рд╛рд▓ рдмрд╣реБ-рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдЙрдирдХреЗ рдЙрдкрдХрд░рдгред рдФрд░ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЙрдирдХреЗ рдмреАрдЪ рдФрд░ рдкреАрдЫреЗ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ, рдФрд░ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдФрд░ рдЕрдиреБрднрд╡ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рдХреЗ рдЙрдЪреНрдЪ рд╕реНрддрд░ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдПрдкреАрдЖрдИ рдХреЗ рд╡рд┐рд╢рд╛рд▓ рдорд╛рддреНрд░рд╛ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, рдореБрдЭреЗ рдмрд╣реБрдд рдмрд╛рд░реАрдХреА рд╕реЗ рдорддрднреЗрджреЛрдВ рдХреЛ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рд╣реЛрдирд╛ рдкрдбрд╝рд╛ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХрднреА-рдХрднреА рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рдерд╛ рдХрд┐ рдореИрдВрдиреЗ рд╣рд░ рджрд┐рди VB.NET (рдореЗрд░реА рдкрд╕рдВрджреАрджрд╛ рднрд╛рд╖рд╛) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдирдпрд╛ рд╕реАрдЦрд╛ рд╣реИред
рдФрд░ рдЕрдВрдд рдореЗрдВ, рдореИрдВрдиреЗ рдкрд┐рдЫрд▓реЗ 15 рд╡рд░реНрд╖реЛрдВ рдореЗрдВ VB.NET рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдФрд░ рдЬреЛ рдореИрдВрдиреЗ рд╕реАрдЦрд╛, рдЙрд╕рдХреЗ рдПрдХ рдХрдг рдХреЛ тАЛтАЛрдорд╕реНрддрд┐рд╖реНрдХ рд╕реЗ рдЦрд╛рд▓реА рдХрд░рдиреЗ рдФрд░ рдЙрддрд╛рд░рдиреЗ рдХрд╛ рд╕рдордп рд▓рд┐рдпрд╛, рдЗрд╕ рдЙрдореНрдореАрдж рдореЗрдВ рдХрд┐ рдореИрдВ рдЕрдЧрд▓реА рдмрд╛рд░ рдХрдо рд╕реЗ рдХрдо рдЕрдкрдирд╛ рд╕рдордп рдмрдЪрд╛ рд╕рдХрддрд╛ рд╣реВрдВред
рд╕реВрдЪреА рдореЗрдВ рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рдмреБрдирд┐рдпрд╛рджреА рдирд┐рдпрдореЛрдВ рдХреА рд░реВрдкрд░реЗрдЦрд╛ рддреИрдпрд╛рд░ рдХрд░реВрдВрдЧрд╛:
- рдпрд╣ рд╕реВрдЪреА рд╕рд╛рдорд╛рдиреНрдп рдЕрд░реНрдереЛрдВ рдореЗрдВ рд╕рдВрдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред рд╡рд╣ рд╕рдВрдкреВрд░реНрдг рд╣реИред рдпреЗ рд╕рднреА рдЕрдВрддрд░ рдирд╣реАрдВ рд╣реИрдВред рдпреЗ рд╕рднреА рдЕрдВрддрд░ рднреА рдирд╣реАрдВ рд╣реИрдВ рдЬреЛ рдореИрдВ рдЖрдорддреМрд░ рдкрд░ рдЬрд╛рдирддрд╛ рд╣реВрдВред рдпреЗ рдХреЗрд╡рд▓ рдЕрдВрддрд░ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВ рдкрд╣рд▓реЗ рдпрд╛рдж рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдЬрдм рддрдХ рдХрд┐ рдореИрдВ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдердХ рдирд╣реАрдВ рдЬрд╛рддрд╛; рдЬрдм рддрдХ рдореИрдВ рддрд╛рдХрдд рд╕реЗ рдирд╣реАрдВ рднрд╛рдЧрддрд╛ред рдпрджрд┐ рдореИрдВ рдпрд╛ рдЖрдк рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдЕрдиреНрдп рдорддрднреЗрджреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдпрд╛рдж рдХрд░рддрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рдЗрд╕ рд╕реВрдЪреА рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред
- рдореИрдВ рд╡реАрдмреА 11 рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╢реБрд░реВ рдХрд░реВрдВрдЧрд╛ рдФрд░ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдкрд╣рд▓реЗ рдорди рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдорддрднреЗрджреЛрдВ рдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдЧреЗ рдмрдврд╝реВрдВрдЧрд╛ред
- рдпрд╣ VB рдореЗрдВ рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХреА рд╕реВрдЪреА рдирд╣реАрдВ рд╣реИ рдЬреЛ C # рдореЗрдВ рдирд╣реАрдВ рд╣реИрдВред рддреЛ рдХреЛрдИ "XML рд╢рд╛рдмреНрджрд┐рдХ рдмрдирд╛рдо рд╕рдВрдХреЗрддред" рдпрд╣ рдмрд╣реБрдд рдЖрдо рд╣реИ, рдФрд░ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдРрд╕реА рд╕реВрдЪреА рдХреЗ рдЯрди рд╣реИрдВ (рдЬрд┐рдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦреЗ рдЧрдП рдереЗ, рдФрд░ рд╢рд╛рдпрдж рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдореИрдВ рдФрд░ рд▓рд┐рдЦреВрдВрдЧрд╛)ред рдореИрдВ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЙрди рдирд┐рд░реНрдорд╛рдгреЛрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реВрдБрдЧрд╛, рдЬрд┐рдирдореЗрдВ рджреЛрдиреЛрдВ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдПрдХ рдПрдирд╛рд▓реЙрдЧ рд╣реИ, рдФрд░ рдЬрд╣рд╛рдВ рдПрдХ рдЕрд╕рдВрдмрджреНрдз рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рд╕реБрдЭрд╛рд╡ рджреЗ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпреЗ рджреЛрдиреЛрдВ рдЪреАрдЬреЗрдВ рд╕рдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЬрд╣рд╛рдВ рдЫреЛрдЯреЗ рдпрд╛ рдмрдбрд╝реЗ рдЕрдВрддрд░ рд╣реИрдВ; рд╡реЗ рд╕рдорд╛рди рджрд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдпрд╛ рдЕрдВрддрддрдГ рдЕрд▓рдЧ рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВред
- рдпрд╣ VB рдФрд░ C # (рдЬреЛ рдЕрдирдЧрд┐рдирдд рд╣реИрдВ) рдХреЗ рдмреАрдЪ рд╡рд╛рдХреНрдпрд╛рддреНрдордХ рдЕрдВрддрд░ рдХреА рд╕реВрдЪреА рдирд╣реАрдВ рд╣реИ ред рдореИрдВ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд╢рдмреНрджрд╛рд░реНрде рднреЗрдж (рдЪреАрдЬреЛрдВ рдХрд╛ рдХреНрдпрд╛ рдЕрд░реНрде рд╣реИ) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛, рди рдХрд┐ рд╡рд╛рдХреНрдп-рд░рдЪрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ (рдХреИрд╕реЗ рдЪреАрдЬреЗрдВ рд▓рд┐рдЦреА рдЬрд╛рддреА рд╣реИрдВ)ред рдЗрд╕рд▓рд┐рдП "рд╡реАрдмреА рдХреЗ рд╕рд╛рде рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рд╢реБрд░реВ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВ", рдФрд░ рд╕реА # рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕реЗ "рдпрд╛" рд╕реА # рдореЗрдВ _ рдПрдХ рд╡реИрдз рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реАрдмреА рдореЗрдВ рдирд╣реАрдВред рд▓реЗрдХрд┐рди рдореИрдВ рдХрдИ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдирд┐рдпрдо рдХреЛ рддреЛрдбрд╝ рджреВрдВрдЧрд╛ред рдЖрдЦрд┐рд░рдХрд╛рд░, рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдкрд╣рд▓рд╛ рдЦрдВрдб рд╢рд╛рдмреНрджрд┐рдХ рдирд┐рдпрдореЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред
- рдЕрдХреНрд╕рд░, рдореИрдВ рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛, рдФрд░ рдХрднреА-рдХрднреА рдореИрдВ рдФрдЪрд┐рддреНрдп рдХреА рдкреЗрд╢рдХрд╢ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдбрд┐рдЬрд╛рдЗрди рдПрдХ рддрд░рд╣ рд╕реЗ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдкрд░ рдХреНрдпреЛрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореЗрд░реА рдЖрдВрдЦреЛрдВ рдХреЗ рд╕рд╛рдордиреЗ рдХреБрдЫ рдбрд┐рдЬрд╛рдЗрди рдирд┐рд░реНрдгрдп рдХрд┐рдП рдЧрдП рдереЗ, рд▓реЗрдХрд┐рди рд╡рд┐рд╢рд╛рд▓ рдмрд╣реБрдордд рдиреЗ рдореЗрд░реЗ рд╕рдордп рд╕реЗ рдкрд╣рд▓реЗ, рдФрд░ рдореИрдВ рдХреЗрд╡рд▓ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рд╡реЗ рдХреНрдпреЛрдВ рдмрдирд╛рдП рдЧрдП рдереЗред
- рдХреГрдкрдпрд╛ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЫреЛрдбрд╝реЗрдВ рдпрд╛ рдореБрдЭреЗ ( @ThatVBGuy ) рдЯреНрд╡реАрдЯ рдХрд░реЗрдВ рдЬрд┐рд╕рд╕реЗ рдореБрдЭреЗ рдЖрдкрдХреЗ рдкрд╕рдВрджреАрджрд╛ рдЕрдВрддрд░ рдФрд░ / рдпрд╛ рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдк рдЕрдзрд┐рдХ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЙрдореНрдореАрджреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдФрд░ рдЖрдЧреЗ рджреЗрд░реА рдХреЗ рдмрд┐рдирд╛ ...
рд╕рд╛рдордЧреНрд░реА
рдЫрд┐рдкрд╛ рд╣реБрдЖ рдкрд╛рдард╕рд┐рдВрдЯреЗрдХреНрд╕ рдФрд░ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ
рдШреЛрд╖рдгрд╛рдПрдБ, рдЖрджрд┐ред
- 5. VB рдХрднреА-рдХрднреА рдирд╛рдо рд╕реЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдЖрдХрд╕реНрдорд┐рдХ рдирд┐рд╣рд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП IL рдореЗрдВ рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рдХреА рдШреЛрд╖рдгрд╛рдУрдВ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ
- 6. VB рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЖрдзрд╛рд░ рд╡рд░реНрдЧ рдХреЗ рд╕рджрд╕реНрдпреЛрдВ рдХреЛ рдирд╛рдо (рдЫрд╛рдпрд╛) рд╕реЗ рдЫреБрдкрд╛рддрд╛ рд╣реИ, рдФрд░ рдирд╛рдо рдФрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╕реЗ рдирд╣реАрдВ (рдУрд╡рд░рд▓реЛрдб)
- 7. VB11 рдФрд░ рдиреАрдЪреЗ рдЬреЗрдирд░рд┐рдХ рдореЗрдВ рд╕рдВрд░рдХреНрд╖рд┐рдд рд╕рджрд╕реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдХрдбрд╝реЗ рд╣реИрдВ
- 8. рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ "рдирд╛рдорд┐рдд рддрд░реНрдХ" рд╣рдореЗрд╢рд╛ рдЧреБрдг / рдлрд╝реАрд▓реНрдб рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рддрд╛ рд╣реИ
- 9. рд╕рднреА рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рдШреЛрд╖рдгрд╛рдПрдВ (рдЖрдорддреМрд░ рдкрд░) рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдореВрд▓ рдирд╛рдо рд╕реНрдерд╛рди рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИрдВред
- 10. рдореЙрдбреНрдпреВрд▓ IL рдореЗрдВ рд╕реАрд▓рдмрдВрдж рдЕрдореВрд░реНрдд рд╡рд░реНрдЧреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╡реЗ рдмрд┐рд▓реНрдХреБрд▓ рд╕реНрдерд┐рд░ C # рдХрдХреНрд╖рд╛рдПрдВ рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдирд╣реАрдВ рджрд┐рдЦрддреЗ рд╣реИрдВ
- 11. рдЖрдкрдХреЛ WinForms рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ (рдЙрдк рдореБрдЦреНрдп) рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдкрд╖реНрдЯ рд╡рд┐рдзрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ
- 12. рдпрджрд┐ рдЖрдк рдХреБрдЫ рдЕрдкреНрд░рдЪрд▓рд┐рдд VB рд░рдирдЯрд╛рдЗрдо рд╡рд┐рдзрд┐рдпреЛрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, FileOpen) рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХреЙрд▓рд┐рдВрдЧ рд╡рд┐рдзрд┐ рдХреЛ рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП inlining рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рд╛рде рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
- 13. рдпрджрд┐ рдЖрдкрдХрд╛ рдкреНрд░рдХрд╛рд░ рдбрд┐рдЬрд╝рд╛рдЗрдирд░ рдЬреЗрдирд░реЗрдЯреЗрдб рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдХреЛрдИ рд╕реНрдкрд╖реНрдЯ рдирд┐рд░реНрдорд╛рддрд╛ рдШреЛрд╖рдгрд╛рдПрдБ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╕рдВрдХрд▓рдХ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реЛрдиреЗ рдкрд░ рдПрдирд╛рд▓рд╛рдЗрдЬрд╝рдХрдВрдкреЛрдиреЗрдВрдЯ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдЧрд╛ред
- 14. рдЖрдВрд╢рд┐рдХ рд╕рдВрд╢реЛрдзрдХ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкреНрд░рдХрд╛рд░ рдЖрдВрд╢рд┐рдХ рдирд╣реАрдВ рд╣реИ
- 15. рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ, рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкрд╣реБрдВрдЪ рдХрд╛ рд╕реНрддрд░ рдЦреЗрддреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╣рд░ рдЪреАрдЬ рдХреЗ рд▓рд┐рдП рд╣реИ, рдФрд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдореЗрдВ, рдЦреЗрддреЛрдВ рдХреЗ рд▓рд┐рдП рднреА
- 16. VB рдЙрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдЖрд░рдореНрдн рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдзрд╛рд░ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ C # рдЙрдиреНрд╣реЗрдВ рдЖрд░рдВрднрд┐рдХ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдзрд╛рд░ рдирд┐рд░реНрдорд╛рддрд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ
- 17. рд╡реАрдмреА рдШрдЯрдирд╛рдУрдВ рдХреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдШреЛрд╖рд┐рдд рдмреИрдХрд┐рдВрдЧ рдХреНрд╖реЗрддреНрд░ рдХрд╛ рд╕реА # рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдирд╛рдо рд╣реИ рдФрд░ рдирд╛рдо рд╕реЗ рд╕реБрд▓рдн рд╣реИ
- 18. рд╡реАрдмреА рдСрдЯреЛ-рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЗ рдЕрдиреБрдорд╛рдирд┐рдд рд░реВрдк рд╕реЗ рдШреЛрд╖рд┐рдд рд╕рд╣рд╛рдпрдХ рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдирд╛рдо рд╣реИ рдФрд░ рдЗрд╕ рдирд╛рдо рд╕реЗ рд╕реБрд▓рдн рд╣реИ
- 19. рдСрдЯреЛ-рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЗ рдЕрдиреБрдорд╛рдирд┐рдд рд░реВрдк рд╕реЗ рдШреЛрд╖рд┐рдд рдХреЗрд╡рд▓ рд╕рд╣рд╛рдпрдХ рдХреНрд╖реЗрддреНрд░ рд▓реЗрдЦрди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ
- 20. рдШрдЯрдирд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдХрднреА-рдХрднреА рдПрдХ рд╕рд╣рд╛рдпрдХ рдШрдЯрдирд╛ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдЕрдиреБрджреЗрд╢
рд╕рд┐рдВрдЯреЗрдХреНрд╕ рдФрд░ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ
1. VB рдХреАрд╡рд░реНрдб рдФрд░ рдСрдкрд░реЗрдЯрд░ рдкреВрд░реНрдг-рдЪреМрдбрд╝рд╛рдИ рд╡рд╛рд▓реЗ рд╡рд░реНрдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдХреБрдЫ рднрд╛рд╖рд╛рдУрдВ (рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд┐рддрдиреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХрдо рд╕реЗ рдХрдо рдХреБрдЫ рд░реВрдкреЛрдВ рдореЗрдВ рдЪреАрдиреА, рдЬрд╛рдкрд╛рдиреА рдФрд░ рдХреЛрд░рд┐рдпрд╛рдИ) рдкреВрд░реНрдг-рдЪреМрдбрд╝рд╛рдИ рд╡рд╛рд▓реЗ рд╡рд░реНрдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдПрдХ рдореЛрдиреЛрд╕реНрдкреИрд╕ рдлреЙрдиреНрдЯ (рдЬреИрд╕рд╛ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХрд░рддреЗ рд╣реИрдВ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЪреАрдиреА рдЪрд░рд┐рддреНрд░ рджреЛрдЧреБрдирд╛ рдХреНрд╖реИрддрд┐рдЬ рд╕реНрдерд╛рди рд▓реЗрдЧрд╛, рдЬреИрд╕рд╛ рдХрд┐ рд▓реИрдЯрд┐рди рдЪрд░рд┐рддреНрд░реЛрдВ рдиреЗ рдкрд╢реНрдЪрд┐рдо рдореЗрдВ рджреЗрдЦрд╛ рдерд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

рдпрд╣рд╛рдВ рдореЗрд░реЗ рдкрд╛рд╕ рдЬрд╛рдкрд╛рдиреА рдореЗрдВ рд▓рд┐рдЦрд┐рдд рдПрдХ рдЪрд░ рдШреЛрд╖рдгрд╛ рд╣реИ, рдФрд░ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдЖрд░рдВрднреАрдХрд░рдг рднреА рдЬрд╛рдкрд╛рдиреА рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдмрд┐рдВрдЧ рдЕрдиреБрд╡рд╛рджрдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЪрд░ рдХреЛ "рдЧреНрд░реАрдЯрд┐рдВрдЧ" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд░реЗрдЦрд╛ рдХрд╣рддреА рд╣реИ "рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб!" рдЬрд╛рдкрд╛рдиреА рдореЗрдВ рдЪрд░ рдирд╛рдо рдХреЗрд╡рд▓ 2 рд╡рд░реНрдг рд▓рдВрдмрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ 4 рдЕрд░реНрдз-рдЪреМрдбрд╝рд╛рдИ рд╡рд░реНрдгреЛрдВ рдХрд╛ рд╕реНрдерд╛рди рд▓реЗрддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдореЗрд░рд╛ рдХреАрдмреЛрд░реНрдб рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рджреЗрддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реА рдЯрд┐рдкреНрдкрдгреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╕рдВрдЦреНрдпрд╛рдУрдВ рдФрд░ рдЕрдиреНрдп рд╕рднреА рдореБрджреНрд░рд┐рдд ASCII рд╡рд░реНрдгреЛрдВ рдХреА рдкреВрд░реНрдг-рдЪреМрдбрд╝рд╛рдИ рд╕рдВрд╕реНрдХрд░рдг рд╣реИрдВ, рдЬрд┐рдирдХреА рдЬрд╛рдкрд╛рдиреА рдХреЗ рд╕рдорд╛рди рдЪреМрдбрд╝рд╛рдИ рд╣реИред рдЗрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдкреВрд░реНрдг-рдЪреМрдбрд╝рд╛рдИ рд╕рдВрдЦреНрдпрд╛ "1" рдФрд░ "2" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдПрдХ рджреВрд╕рд░реА рдЯрд┐рдкреНрдкрдгреА рд▓рд┐рдЦреАред рдпреЗ рдкрд╣рд▓реА рдЯрд┐рдкреНрдкрдгреА рдХреЗ рд░реВрдк рдореЗрдВ "1" рдФрд░ "2" рдирд╣реАрдВ рд╣реИрдВред рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рдмреАрдЪ рдХреЛрдИ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдирд╣реАрдВ рд╣реИрдВред рдЖрдк рдпрд╣ рднреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡рд░реНрдгреЛрдВ рдХрд╛ рдЖрдХрд╛рд░ рдареАрдХ 2 рд╡рд░реНрдг рдЪреМрдбрд╝рд╛ рдирд╣реАрдВ рд╣реИ, рдереЛрдбрд╝рд╛ рд╕рд╛ рдСрдлрд╕реЗрдЯ рд╣реИред рдпрд╣ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд░рдо рдкреВрд░реНрдг-рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдЖрдзреЗ-рдЪреМрдбрд╝рд╛рдИ рд╡рд╛рд▓реЗ рд╡рд░реНрдгреЛрдВ рдХреЛ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдФрд░ рд╕рднреА рддреАрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рдорд┐рд▓рд╛рддрд╛ рд╣реИред
рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдЖрдзреА рдЪреМрдбрд╝рд╛рдИ рд╡рд╛рд▓реЗ рд╣реИрдВ, рдЕрд▓реНрдлрд╝рд╛рдиреНрдпреВрдореЗрд░рд┐рдХ рд╡рд░реНрдг рдкреВрд░реНрдг рдЪреМрдбрд╝рд╛рдИ рд╡рд╛рд▓реЗ рд╣реИрдВред рд╣рдо рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдирд╣реАрдВ рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рд╣рдо рдЯреЗрдХреНрд╕реНрдЯ рдЕрд▓рд╛рдЗрдирдореЗрдВрдЯ рд╕реЗ рдЧреНрд░рд╕реНрдд рдирд╣реАрдВ рд╣реИрдВред рдФрд░ рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рдЪреАрдиреА, рдЬрд╛рдкрд╛рдиреА рдпрд╛ рдХреЛрд░рд┐рдпрд╛рдИ рд╣реИрдВ (рдпрд╛ рдХреЛрдИ рдФрд░ рдЬреЛ рдЕрдкрдиреА рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рдЖрдХрд╛рд░ рдХреЗ рдкрд╛рддреНрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ) рдФрд░ рдЕрдкрдиреА рдореВрд▓ рднрд╛рд╖рд╛ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдпрд╛ рддрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпреЗ рдЫреЛрдЯреА рд╕рдВрд░реЗрдЦрдг рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдЙрд▓реНрд▓рдВрдШрди рдХрд░ рд░рд╣реА рд╣реИрдВред
рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ, рдЖрдкрдХреЗ рдЬрд╛рдкрд╛рдиреА рдХреАрдмреЛрд░реНрдб рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдЪрд┐рддреНрд░рд▓рд┐рдкрд┐ рдФрд░ рд▓реИрдЯрд┐рди рдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдкреВрд░реНрдг-рдЪреМрдбрд╝рд╛рдИ рд╡рд╛рд▓реЗ рд▓реИрдЯрд┐рди рд╡рд░реНрдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред VB рдХреАрд╡рд░реНрдб, рд╕реНрдкреЗрд╕, рдСрдкрд░реЗрдЯрд░ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЙрджреНрдзрд░рдг рдЪрд┐рд╣реНрдиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рддреЛ рдпрд╣ рд╕рдм рдЗрд╕ рддрд░рд╣ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдХреАрд╡рд░реНрдб, рд░рд┐рдХреНрдд рд╕реНрдерд╛рди, рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ, рдСрдкрд░реЗрдЯрд░, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЙрджреНрдзрд░рдг рдЪрд┐рд╣реНрди рдЕрдкрдиреЗ рдкреВрд░реНрдг рдЖрдХрд╛рд░ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЕрд░рд╛рдЬрдХрддрд╛ рдореЗрдВ рдЖрджреЗрд╢ рд▓рд╛рдпрд╛ред
рд╣рд╛рдВред рдЬрд╛рдкрд╛рдиреА рд╡реАрдмреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЕрдВрдЧреНрд░реЗрдЬреА рднрд╛рд╖рд╛ (рдФрд░ рд╢рд╛рдпрдж рдпрд╣реА рдХрд╛рд░рдг рд╣реИ) рдХреЗ рд╕рдорд╛рди рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдЕрдзрд┐рдХрд╛рдВрд╢ рд╡реАрдмреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдореИрдВ рдордВрдЪреЛрдВ рдкрд░ рджреЗрдЦрддрд╛ рд╣реВрдВ, рдЕрдВрдЧреНрд░реЗрдЬреА рдореБрдЦреНрдп рднрд╛рд╖рд╛ рдирд╣реАрдВ рд╣реИред Microsoft рдореЗрдВ рдЕрдкрдиреЗ рдХрд╛рдо рдХреЗ рджреМрд░рд╛рди, рдореИрдВ рдХрдИ рдмрд╛рд░ рдЬрд╛рдкрд╛рдиреА рд╡реАрдмреА рдПрдорд╡реАрдкреА рд╕реЗ рдорд┐рд▓рд╛, рдЙрдирдореЗрдВ рд╕реЗ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдиреЗ рд▓рдЧрд╛рддрд╛рд░ рдЬрд╛рдкрд╛рдиреА рдорд┐рдард╛рдИ рд▓рд╛рдИред рдпрджрд┐ рдЖрдк рдЪреАрди, рдЬрд╛рдкрд╛рди рдпрд╛ рдХреЛрд░рд┐рдпрд╛ (рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рджреЗрд╢ рд╕реЗ рдЬреЛ рдкреВрд░реНрдг-рдЪреМрдбрд╝рд╛рдИ рд╡рд╛рд▓реЗ рд╡рд░реНрдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ) рд╕реЗ VB рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд▓рд┐рдЦреЗрдВред (рд▓реЗрдЦрдХ рдХреЗ рд▓рд┐рдП рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдЙрдиреНрд╣реЛрдВрдиреЗ рд▓рд┐рдЦрд╛ рд╣реИ рдХрд┐ рдЬрд╛рдкрд╛рдиреА рдХреЛрдб рдореЗрдВ рдХреЛрдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд░ рдЬрдЧрд╣ рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ -
рд▓рдЧрднрдЧред )
рдордЬреЗрджрд╛рд░ рдХреНрд╖рдг: рдЬрдм рдореИрдВрдиреЗ рд╢реБрд░реВ рдореЗрдВ рд╡реАрдмреА рдореЗрдВ рдкреНрд░рдХреНрд╖реЗрдкрд┐рдд рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдерд╛, рддреЛ рдореИрдВрдиреЗ (рдореЗрд░реА рд╢рд░реНрдо рдХреА рдмрд╛рдд) рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рдкреВрд░реНрдг-рдЪреМрдбрд╝рд╛рдИ рдШреБрдВрдШрд░рд╛рд▓реЗ рдХреЛрд╖реНрдардХ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд░рдЦрд╛ред рд╡реНрд▓рд╛рджрд┐рдореАрд░ рд░реЗрд╢реЗрддрдирд┐рдХреЛрд╡ ( @vreshetnikov ) рдиреЗ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдЦреЛрдЬрд╛ рдФрд░ рдареАрдХ рдХрд┐рдпрд╛, рддрд╛рдХрд┐ рдЪрд░рд┐рддреНрд░ рдХреА рдЪреМрдбрд╝рд╛рдИ рдкрд░ рд╡реАрдмреА рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ рдХреА рдорд╣рд╛рди рдкрд░рдВрдкрд░рд╛ рдорд╛рдиреНрдп рд░рд╣реЗред2. VB рд╕реНрдорд╛рд░реНрдЯ рдХреЛрдЯреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ
рдареАрдХ рд╣реИ, рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдПрдХ рддрд┐рдкрд╣рд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрд▓реНрд▓реЗрдЦ рдХреЗ рдпреЛрдЧреНрдп рд╣реИред рдХреНрдпрд╛ рдЖрдкрдиреЗ рдХрднреА рдХрд┐рд╕реА рдЯреЗрдХреНрд╕реНрдЯ рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рдореЗрдВ рдирдореВрдирд╛ рдХреЛрдб рджреЗрдЦрд╛ рд╣реИ:

рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ рдХреЙрдкреА рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдХреНрдпрд╛ рдЖрдкрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ (рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдП рдЧрдП) рдЙрджреНрдзрд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдиреЗ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд░реНрдб рд╕рднреА рд╕рд╛рдорд╛рдиреНрдп ASCII рдЙрджреНрдзрд░рдгреЛрдВ рдХреЛ
тАЬ
рд╕реНрдорд╛рд░реНрдЯ рдХреЛрдЯреНрд╕
тАЭ
рдмрджрд▓ рджреЗрддрд╛ рд╣реИ?
рдореИрдВ рдирд╣реАрдВ рдХрд░рддрд╛ред рдареАрдХ рд╣реИ, рдореЗрд░реЗ рдкрд╛рд╕ рдерд╛, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЬрдм рдореИрдВрдиреЗ C # рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рдирдХрд▓ рдХреАред VB рдореЗрдВ, рд╕реНрдорд╛рд░реНрдЯ рдЙрджреНрдзрд░рдг рддрд╛рд░ рдХреЗ рд▓рд┐рдП рдорд╛рдиреНрдп рд╕реАрдорд╛рдВрдХрдХ рд╣реИрдВ (рдпрд╣ рд╣рд╛рд╕реНрдпрд╛рд╕реНрдкрдж рд╣реИ рдХрд┐ рд░реВрд╕реА рдЙрджреНрдзрд░рдг рдЪрд┐рд╣реНрдиреЛрдВ рдореЗрдВ
┬л┬╗
рдирд╣реАрдВ рд╣реИ - рд▓рдЧрднрдЧ рдкреНрд░рддрд┐ред)ред

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

рдореИрдВрдиреЗ рдкреЙрд▓ рд╡рд┐рдХ (
@panopticoncntrl ) рдХреЛ рдпрд╣ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдХрд┐ рдЙрд╕рдиреЗ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдЙрд╕реЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдкреАрдбрд╝рд╛ рд╣реБрдИ рдереА, рд▓реЗрдХрд┐рди рдЙрд╕рдиреЗ рдХрд┐рд╕реА рдЕрдкрд░рд╛рдз рдмреЛрдз рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд┐рдпрд╛ред VB6 рдореЗрдВ рдРрд╕рд╛ рдирд╣реАрдВ рдерд╛, рдЗрд╕рд▓рд┐рдП рдХрд┐рд╕реА рдиреЗ рдЗрд╕реЗ рдмрд╛рдж рдореЗрдВ рдЬреЛрдбрд╝рд╛ред
3. рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХрд┐рд╕реА рднреА рдЖрджрд┐рдо рдкреНрд░рдХрд╛рд░ (рддрд┐рдерд┐рдпреЛрдВ рд╕рд╣рд┐рдд) рдХреЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрдирдореЗрдВ рдХреЛрдИ рднреА рд╕реНрдерд┐рд░ рдореВрд▓реНрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ

4. рдЕрдВрдХрдЧрдгрд┐рддреАрдп рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

рдШреЛрд╖рдгрд╛рдПрдБ, рдЖрджрд┐ред
5. VB рдХрднреА-рдХрднреА рдирд╛рдо рд╕реЗ рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдЖрдХрд╕реНрдорд┐рдХ рдирд┐рд╣рд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдИрдПрд▓ рдХреА рдШреЛрд╖рдгрд╛рдУрдВ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИред
рдпрд╣ рдЖрдЗрдЯрдо рдЧреВрдврд╝рддрд╛рд╡рд╛рдж рдХреА рд╢реНрд░реЗрдгреА рд╕реЗ рд╣реИред VB рдореЗрдВ, рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣рдореЗрд╢рд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдПрдХ рд╕реНрдкрд╖реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп рд╕реАрдПрд▓рдЖрд░ рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдирд╛рдо рдФрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рджреНрд╡рд╛рд░рд╛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рддрд░реАрдХреЛрдВ рдХреА рдЦреЛрдЬ рдХрд░рдирд╛ рд╣реИред рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ VB рдореЗрдВ рдЖрдкрдХреЛ
рдЖрдорддреМрд░ рдкрд░ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд▓рд╛рдЧреВ рдХрд┐рдП рдЧрдП рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рд╕рджрд╕реНрдп рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдПрдХ рдорд╛рдорд▓реЗ рдХреЛ рдЫреЛрдбрд╝рдХрд░:
Interface IFoo Sub Bar() Sub Baz() End Interface Class Foo Implements IFoo Private Sub Bar() Implements IFoo.Bar Exit Sub End Sub Private Sub IFoo_Baz() Implements IFoo.Baz Exit Sub End Sub End Class Class FooDerived Inherits Foo Implements IFoo Public Sub Bar() Implements IFoo.Bar Exit Sub End Sub Public Sub Baz()
gist.github.com/AnthonyDGreen/39634fd98a0cacc093719ab62d7ab1e6#file-partial-re-implementation-vbрдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ,
FooDerived
рд╡рд░реНрдЧ
IFoo.Bar
рдХреЛ рдирдП рддрд░реАрдХреЗ рд╕реЗ рдкреБрди: рдЕрд╕рд╛рдЗрди рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╢реЗрд╖ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиреЛрдВ рдХреЛ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗрд╡рд▓
FooDerived
рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢ рдирд┐рд░реНрджреЗрд╢ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, рддреЛ CLR
FooDerived.Baz
рдХреЛ
FooDerived.Baz
рдХреЗ рдирдП рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд░реВрдк рдореЗрдВ рднреА
IFoo.Baz
(рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдпрд╣
IFoo
рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИ)ред рд╕реА # рдореЗрдВ, рдпрд╣ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд░реВрдк рд╕реЗ рд╣реЛрддрд╛ рд╣реИ (рдФрд░ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдореИрдВ рдЗрд╕реЗ рдордирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ), рд▓реЗрдХрд┐рди рд╡реАрдмреА рдореЗрдВ рдХрдВрдкрд╛рдЗрд▓рд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рдШреЛрд╖рдгрд╛ рд╕реЗ 'рдЗрдореНрдкреНрд▓реАрдореЗрдВрдЯреНрд╕' рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдХреЗрд╡рд▓ рдЙрди рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рджрд╕реНрдпреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдпрджрд┐ рдЖрдк
FooDerived
рдкреВрдЫрддреЗ рд╣реИрдВ
FooDerived
рдХреНрдпрд╛ рдпрд╣
IFoo
рд╕реАрдзреЗ
IFoo
рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдирд╣реАрдВ рдХрд╣реЗрдЧрд╛:

рдореБрдЭреЗ рдпрд╣ рдХреНрдпреЛрдВ рдкрддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреНрдпреЛрдВ рд╣реИ? рдХрдИ рд╡рд░реНрд╖реЛрдВ рдХреЗ рд▓рд┐рдП, VB рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдиреЗ рдЖрдорддреМрд░ рдкрд░ рдХреЛрдб рдкреАрдврд╝реА рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдирд┐рд╣рд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди (рдЖрдорддреМрд░ рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рдШреЛрд╖рдгрд╛ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдмрд┐рдирд╛) рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рд╣реИред рд╡рд░реНрддрдорд╛рди рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рддреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐
FooDerived.Baz
рдЕрдм рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ
IFoo.Baz
рд▓рд╛рдЧреВ
IFoo.Baz
, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдореИрдВрдиреЗ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрдм "рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди" рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд╕рд╛рде рд╕рдВрднрд╛рд╡рд┐рдд рдбрд┐рдЬрд╝рд╛рдЗрди рдореБрджреНрджреЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ, рдЬреЛ рдХреБрдЫ рд╕рджрд╕реНрдпреЛрдВ рдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдлреЗрд╕ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдЧ рдореЗрдВ рдкреБрди: рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред рдпрд╣ рдУрд╡рд░рд▓реЛрдб рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕рднреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХрд░реНрддрд╛рдУрдВ (рдореБрдЦреНрдп рдЕрдзрд┐рднрд╛рд░ рдХреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рдордВрдбрд▓) рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред рдПрдХ рдФрд░ рдкрд░рд┐рджреГрд╢реНрдп рд╕рдВрд╕реНрдХрд░рдг рд╣реИред рдпрджрд┐ рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдкреБрд░рд╛рдиреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рддреЛрдбрд╝реЗ рдмрд┐рдирд╛ рдЗрд╕рдореЗрдВ рдирдП рд╕рджрд╕реНрдп рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдЪреВрдВрдХрд┐ CLR рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдирд╛рдо рдФрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдХрд░рдирд╛ рд╣реИ, рдЕрдЧрд░ VB рд╡рд░реНрдЧ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕рджрд╕реНрдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдЙрдкрдпреБрдХреНрдд рдирд╛рдо рдФрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЗ рд╕рд╛рде рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕рджрд╕реНрдп рд╣реИрдВ, рддреЛ рд╡реЗ рдЗрди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕рджрд╕реНрдпреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЖрдк рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд░рддреЗ рд╣реИрдВред рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рджрд╕реНрдпреЛрдВ рдХрд╛ рдкреВрд░рд╛ рд╕реЗрдЯ рд╕рдВрдХрд▓рди рдХреЗ рд╕рдордп рдЬреНрдЮрд╛рдд рд╣реЛрдиреЗ рдкрд░ рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдпрджрд┐ рдХреЛрдб рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╕рджрд╕реНрдп рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдпрд╣ рдХреЗрд╡рд▓ рдЪреБрдкрдЪрд╛рдк рд░рдирдЯрд╛рдЗрдо рдкрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрджрд▓рддрд╛ рд╣реИред
6. VB рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЖрдзрд╛рд░ рд╡рд░реНрдЧ рдХреЗ рд╕рджрд╕реНрдпреЛрдВ рдХреЛ рдирд╛рдо (рдЫрд╛рдпрд╛) рд╕реЗ рдЫреБрдкрд╛рддрд╛ рд╣реИ, рдФрд░ рдирд╛рдо рдФрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╕реЗ рдирд╣реАрдВ (рдУрд╡рд░рд▓реЛрдб)
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдВрддрд░ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрд░рд┐рджреГрд╢реНрдп рдпрд╣ рд╣реИ: рдЖрдк рдмреЗрд╕ рдХреНрд▓рд╛рд╕ (
DomainObject
) рдХреЛ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рд╕рдВрднрд╡рддрдГ рдЖрдкрдХреЗ рдирд┐рдпрдВрддреНрд░рдг рд╕реЗ рдмрд╛рд╣рд░, рдФрд░ рдПрдХ рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рдзрд┐ рдШреЛрд╖рд┐рдд рдХрд░реЗрдВ рдЬреЛ рдЖрдкрдХреЗ рд╡рд░реНрдЧ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
Print
:
Class DomainObject End Class Class Invoice Inherits DomainObject Public Sub Print(copies As Integer)
gist.github.com/AnthonyDGreen/863cfd1e7536fe8bda7cd145795eaf9f#file-shadows-example-vbрддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдЪрд╛рд▓рд╛рди рдореБрджреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдПрдкреАрдЖрдИ рдХреЗ рдЕрдЧрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЬрд╣рд╛рдВ рдЖрдкрдХрд╛ рдЖрдзрд╛рд░ рд╡рд░реНрдЧ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╡реЗ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕рднреА DomainObjects рдХреЛ рдПрдХ рд╡рд┐рдзрд┐ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВ, рдЬреЛ рдбрд┐рдмрдЧ рд╡рд┐рдВрдбреЛ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдкреВрд░реА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рд╢рд╛рдирджрд╛рд░ рдврдВрдЧ рд╕реЗ рдкреНрд░рд┐рдВрдЯ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ API рдХрд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рдпрд╣ рдиреЛрдЯрд┐рд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЗрдирд╡реЙрдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ
Print()
рдФрд░
Print(Integer)
рддрд░реАрдХреЗ рд╣реИрдВ, рдФрд░ рд╕реЛрдЪреЗрдВ рдХрд┐ рдпреЗ рд╕рдВрдмрдВрдзрд┐рдд рдЕрдзрд┐рднрд╛рд░ рд╣реИрдВред рд╢рд╛рдпрдж рдкрд╣рд▓реЗ рд╕рд┐рд░реНрдл рдПрдХ рдкреНрд░рддрд┐ рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдЪрд╛рд▓рд╛рди рдХреЗ рд▓реЗрдЦрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХреНрдпрд╛ рдХрд▓реНрдкрдирд╛ рдХреА рдереАред рдЖрдкрдХреЛ рдкрддрд╛ рдирд╣реАрдВ рдерд╛ рдХрд┐
DomainObject.Print
рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред рддреЛ рд╣рд╛рдБ, рдпрд╣ VB рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЬрдм рдпрд╣ рд╕реНрдерд┐рддрд┐ рдмрдврд╝рддреА рд╣реИ, рддреЛ рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд, рд╡реАрдмреА рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдирд╛рдо рд╕реЗ рдЫрд┐рдкрд╛рдирд╛ рд╣реИред рдпрд╣реА рд╣реИ, рдЬрдм рддрдХ рдЖрдк рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ
Overloads
рдХреАрд╡рд░реНрдб рдХреЗ рд╕рд╛рде рд╕рдВрдХреЗрдд рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХрд╛
Print
рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдХреЗ
Print
рдЕрдзрд┐рднрд╛рд░ рд╣реИ, рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдХрд╛ рдПрдХ рд╕рджрд╕реНрдп (рдФрд░ рдЗрд╕рдХрд╛ рдХреЛрдИ рднреА рдУрд╡рд░рд▓реЛрдб) рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЫрд┐рдкрд╛ рд╣реБрдЖ рд╣реИред рдХреЗрд╡рд▓ рд╡рд╣реА рдПрдкреАрдЖрдИ рдЬрд┐рд╕реЗ рдЖрдкрдиреЗ рдореВрд▓ рд░реВрдк рд╕реЗ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рд╡рд╣ рдЖрдкрдХреЗ рд╡рд░реНрдЧ рдХреЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдЗрд╕реЗ рд╢реИрдбреЛ рдХреАрд╡рд░реНрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред C # рдХреЗрд╡рд▓
Overloads
рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдБрдХрд┐ рдпрд╣ VB рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ)
Shadows
рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддрд╛ рд╣реИ) рдФрд░ рдРрд╕рд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ (
new
рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдВрддрд░ рд╕рдордп-рд╕рдордп рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдХреБрдЫ рд╡рд┐рд░рд╛рд╕рдд рдкрджрд╛рдиреБрдХреНрд░рдо рдЙрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдПрдХ рд╡рд░реНрдЧ рдХреЛ рдПрдХ рднрд╛рд╖рд╛ рдореЗрдВ рдФрд░ рджреВрд╕рд░реЗ рдореЗрдВ рджреВрд╕рд░реА рднрд╛рд╖рд╛ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЕрддрд┐рднрд╛рд░рд┐рдд рддрд░реАрдХреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдорддрднреЗрджреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдЖрдЗрдЯрдо рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдкрд░реЗ рд╣реИред
7. VB11 рдФрд░ рдиреАрдЪреЗ рдЬреЗрдирд░рд┐рдХ рдореЗрдВ рд╕рдВрд░рдХреНрд╖рд┐рдд рд╕рджрд╕реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдХрдбрд╝реЗ рд╣реИрдВ
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдордиреЗ рдЗрд╕реЗ VS2013 рдФрд░ VS2015 рдХреЗ рдмреАрдЪ рдмрджрд▓ рджрд┐рдпрд╛ред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╣рдордиреЗ рдкреБрди: рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реЗ рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рд╣реЛрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕ рдЕрдВрддрд░ рдХреЛ рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реВрдВ рдпрджрд┐ рдЖрдк рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдиреЛрдЯрд┐рд╕ рдХрд░рддреЗ рд╣реИрдВред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ: рдпрджрд┐ рдПрдХ рд╕рдВрд░рдХреНрд╖рд┐рдд рд╕рджрд╕реНрдп рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░реА, рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╡реНрдпрдХреНрддрд┐ рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗ, рдЗрд╕ рд╕рдВрд░рдХреНрд╖рд┐рдд рд╕рджрд╕реНрдп рдХреЛ рдХреЗрд╡рд▓ рдЙрд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рддрд░реНрдХреЛрдВ рдХреЗ рд╕рд╛рде рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
Class Base(Of T) Protected x As T End Class Class Derived(Of T) Inherits Base(Of T) Public Sub F(y As Derived(Of String))
gist.github.com/AnthonyDGreen/ce12ac986219eb51d6c85fa02c339a2f#file-protected-in-generics-vb8. рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ "рдирд╛рдорд┐рдд рддрд░реНрдХ" рд╣рдореЗрд╢рд╛ рдЧреБрдг / рдлрд╝реАрд▓реНрдб рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рддрд╛ рд╣реИ
VB рдПрдХ рд╣реА рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
:=
рдЧреБрдг рдЧреБрдг / рдлрд╝реАрд▓реНрдб рдХреЛ рдирд╛рдо рд╕реЗ рд╡рд┐рдзрд┐ рддрд░реНрдХ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдЗрд╕рд▓рд┐рдП, рдирд╛рдо рд╕реЗ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рддрд░реНрдХ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред
9. рд╕рднреА рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рдШреЛрд╖рдгрд╛рдПрдВ (рдЖрдорддреМрд░ рдкрд░) рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдореВрд▓ рдирд╛рдо рд╕реНрдерд╛рди рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИрдВ
рдпрд╣ рдЕрдВрддрд░ рд▓рдЧрднрдЧ "рдЙрдиреНрдирдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ" рд╢реНрд░реЗрдгреА рдореЗрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕реВрдЪреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреЛрдб рдХрд╛ рдЕрд░реНрде рдмрджрд▓ рджреЗрддрд╛ рд╣реИред VB рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЧреБрдгреЛрдВ рдореЗрдВ рдПрдХ рдХреНрд╖реЗрддреНрд░ рд╣реИ:

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣ рдХреЗрд╡рд▓ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рдордп рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдирд╛рдо рд╣реИред рдпрд╣ C # рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдЧреБрдгреЛрдВ рдореЗрдВ "рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд╛рдо рд╕реНрдерд╛рди" рдХреЗ рд╕рдорд╛рди рдлрд╝реАрд▓реНрдб
рдирд╣реАрдВ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд╛рдорд╕реНрдерд╛рди рдмрд╕ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ C # рдореЗрдВ рдирдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХреМрди рд╕рд╛ рдХреЛрдб рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди VB рдореЗрдВ рд░реВрдЯ рдиреЗрдорд╕реНрдкреЗрд╕ рдХрд╛ рдЕрд░реНрде рд╣реИ, рдЬрдм рддрдХ рдХрд┐ рдЕрдиреНрдпрдерд╛ рдЗрдВрдЧрд┐рдд рди рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЗрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рдШреЛрд╖рдгрд╛ рдЗрд╕ рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ VB рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ рдЖрдорддреМрд░ рдкрд░ рдХреЛрдИ рднреА рдирд╛рдорд╕реНрдерд╛рди рдШреЛрд╖рдгрд╛рдПрдБ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдЖрдк рдПрдХ рдирд╛рдо рд╕реНрдерд╛рди рдШреЛрд╖рдгрд╛ рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд░реВрдЯ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ:
Namespace Controllers
gist.github.com/AnthonyDGreen/fd1e5e3a58aee862a5082e1d2b078084#file-root-namespace-vbрдЗрд╕ рдкреНрд░рдХрд╛рд░,
Controllers
рдирд╛рдорд╕реНрдерд╛рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ
VBExamples.Controllers
рдирд╛рдо рд╕реНрдерд╛рди рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╣реИрдВ, рдЬрдм рддрдХ рдХрд┐ рдЖрдк рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ
Global
рдШреЛрд╖рд┐рдд рдХрд░рдХреЗ рдЗрд╕ рддрдВрддреНрд░ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдирд╣реАрдВ рдкрд╛рддреЗ рд╣реИрдВред
рдпрд╣ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ VB рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрддрд░ рдХреЗ рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдФрд░ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рдмрдЪрд╛рддрд╛ рд╣реИред рдФрд░ рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧреА рд╣реИ рдпрджрд┐ рдЖрдк рдПрдХ UWP рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ (рдХреНрдпреЛрдВрдХрд┐ рд╕рдм рдХреБрдЫ UWP рдореЗрдВ рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП), рдФрд░ рдпрд╣ рдЕрддреНрдпрдВрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рд╕рдВрдкреВрд░реНрдг рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рдирд╛рдо рд╕реНрдерд╛рди рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдХрд╣рд┐рдП, рдЬреИрд╕реЗ рд░реЛрдЬрд▓рд┐рди рд╕реЗ рдХреБрдЫ рдирд╛рдо
Microsoft.CodeAnalysis
рддрд░рд╣ рдПрдХ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЬрд╛рд░реА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИред рдХреЛрдб рдЬрдирд░реЗрдЯрд░, XAML рдирд╛рдорд╕реНрдерд╛рди рдФрд░ рдирдП
.vbproj
рдлрд╝рд╛рдЗрд▓
.vbproj
рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдЗрд╕реЗ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред
10. рдореЙрдбреНрдпреВрд▓ IL рдореЗрдВ рд╕реАрд▓рдмрдВрдж рдЕрдореВрд░реНрдд рд╡рд░реНрдЧреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╡реЗ рдмрд┐рд▓реНрдХреБрд▓ рд╕реНрдерд┐рд░ C # рдХрдХреНрд╖рд╛рдПрдВ рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдирд╣реАрдВ рджрд┐рдЦрддреЗ рд╣реИрдВред
VB рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рд╕реНрдЯреИрдЯрд┐рдХ C # рдХреНрд▓рд╛рд╕реЗрд╕ рд╕реЗ рдкрд╣рд▓реЗ рдореМрдЬреВрдж рдереЗ, рд╣рд╛рд▓рд╛рдБрдХрд┐ рд╣рдордиреЗ 2010 рдореЗрдВ IL рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЗрдиреНрд╣реЗрдВ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдереАред рджреБрд░реНрднрд╛рдЧреНрдпрд╡рд╢, рдпрд╣ рдПрдХ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рдерд╛, рдХреНрдпреЛрдВрдХрд┐ .NET рдХреЗ рдЙрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП XML Serializer (рдпрд╛ рд╢рд╛рдпрдж рдпрд╣ рдмрд╛рдЗрдирд░реА рдерд╛) (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЗрд╕реЗ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ рдерд╛) рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рдиреЗрд╕реНрдЯреЗрдб рдХреЛ рдЯрд╛рдЗрдк рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ рдЬреЛ рдХрд┐ рдмрдирд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛ (рдФрд░ рдПрдХ рд╕рд╛рд░ рд╡рд░реНрдЧ) ) рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рдЙрдиреНрд╣реЛрдВрдиреЗ рдПрдХ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХ рджрд┐рдпрд╛ред
рд╣рдордиреЗ рдЗрд╕реЗ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдкрд╛рдпрд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╡рд╛рдкрд╕ рд▓реЗ рд▓рд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдХреБрдЫ рдХреЛрдб рдиреЗ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдПрдореНрдмреЗрдбреЗрдб рдПрдирд╛рдо рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛ред рдФрд░ рдЬрдм рд╕реЗ рдЖрдк рдпрд╣ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╕рдВрдХрд▓рд┐рдд рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдЧрд╛, рддреЛ рдЗрд╕реЗ рдмрджрд▓рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛, рдФрд░ рдЕрдиреНрдп рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдпрд╣ рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдлреЗрдВрдХ рджреЗрдЧрд╛ред
11. рдЖрдкрдХреЛ WinForms рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ (рдЙрдк рдореБрдЦреНрдп) рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдкрд╖реНрдЯ рд╡рд┐рдзрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ
рдпрджрд┐ рдЖрдкрдХрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реНрдЯрд╛рд░реНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдлреЙрд░реНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ "рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдлреНрд░реЗрдорд╡рд░реНрдХ" (рдЕрдЧрд▓реЗ рдкреЛрд╕реНрдЯ рдореЗрдВ рдЗрд╕ рдкрд░ рдЕрдзрд┐рдХ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ VB рдПрдХ
Sub Main
рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХрд╛ рд╕реНрдЯрд╛рд░реНрдЯ рдлреЙрд░реНрдо рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ
Application.Run
рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЖрдкрдХреЛ рдпрд╛ рддреЛ рдкреВрд░реА рдлрд╛рдЗрд▓ рдХреА рдмрдЪрдд рд╣реЛрддреА рд╣реИ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╛ рддреЛ рдЖрдкрдХреЗ
Form
рдореЗрдВ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рдзрд┐, рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
12. рдпрджрд┐ рдЖрдк рдХреБрдЫ рдЕрдкреНрд░рдЪрд▓рд┐рдд VB рд░рдирдЯрд╛рдЗрдо рд╡рд┐рдзрд┐рдпреЛрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, FileOpen) рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХреЙрд▓рд┐рдВрдЧ рд╡рд┐рдзрд┐ рдХреЛ рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрдирд▓рд╛рдЗрди рдХрд░рдиреЗ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рд╛рде рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдлрд╝рд╛рдЗрд▓рдУрдкреЗрди рдЬреИрд╕реА рд╡реАрдмреА 6-рд╢реИрд▓реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрджрд░реНрднреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдХреЛрдб рд╕реНрдерд┐рдд рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлрд╝рд╛рдЗрд▓ # 1 рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдПрдХ рд▓реЙрдЧ рд╣реЛ рд╕рдХрддреА рд╣реИ рдФрд░ рджреВрд╕рд░реЗ рдореЗрдВ рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реЛ рд╕рдХрддреА рд╣реИред рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреМрди рд╕реА рдЕрд╕реЗрдВрдмрд▓реА рдЪрд▓ рд░рд╣реА рд╣реИ,
Assembly.GetCallingAssembly()
рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЬреЗрдЖрдИрдЯреА рдХреЙрд▓рд░ рдореЗрдВ рдЖрдкрдХреА рд╡рд┐рдзрд┐ рдХреЛ
рдмрддрд╛рддрд╛ рд╣реИ , рддреЛ рд╕реНрдЯреИрдХ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рд╡реАрдмреА рд░рдирдЯрд╛рдЗрдо рд╡рд┐рдзрд┐ рдХреЛ рдЖрдкрдХреА рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рдирд╣реАрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдХреЙрд▓рд░ рджреНрд╡рд╛рд░рд╛, рдЬреЛ рдПрдХ рдЕрд▓рдЧ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдореЗрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рддрдм рдЖрдкрдХреЗ рдХреЛрдб рдХреЛ рдХреЙрд▓рд░ рдХреА рдЖрдВрддрд░рд┐рдХ рд╕реНрдерд┐рддрд┐ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдпрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗ рд╕рдХрддрд╛ рд╣реИред рд╡рд╕реНрддреБред рдпрд╣ рдХреЛрдИ рд╕реБрд░рдХреНрд╖рд╛ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрджрд┐ рдЖрдкрдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╕рдордЭреМрддрд╛ рдХреЛрдб рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рддреЛ рдЖрдк рдкрд╣рд▓реЗ рд╣реА рдЦреЛ рдЪреБрдХреЗ рд╣реИрдВред рдпрд╣ рд╢реБрджреНрдзрддрд╛ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдЗрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХрдВрдкрд╛рдЗрд▓рд░ рдЗрдирд▓рд╛рдЗрдирд┐рдВрдЧ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рджреЗрддрд╛ рд╣реИред
рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди 2010 рдореЗрдВ рдЕрдВрддрд┐рдо рд╕рдордп рдкрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдб рдХреЛ рдЗрдирд▓рд╛рдЗрди / рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝ рдХрд░рддреЗ рд╕рдордп x64 JIT рдмрд╣реБрдд рдЖрдХреНрд░рд╛рдордХ рд╣реИ, рдФрд░ рд╣рдордиреЗ рдЗрд╕реЗ рдмрд╣реБрдд рджреЗрд░ рд╕реЗ рдкрд╛рдпрд╛, рдФрд░ рдпрд╣ рд╕рдмрд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд╡рд┐рдХрд▓реНрдк рдерд╛ред
13. рдпрджрд┐ рдЖрдкрдХрд╛ рдкреНрд░рдХрд╛рд░ рдбрд┐рдЬрд╝рд╛рдЗрдирд░ рдЬреЗрдирд░реЗрдЯреЗрдб рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдХреЛрдИ рд╕реНрдкрд╖реНрдЯ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдШреЛрд╖рдгрд╛рдПрдВ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдХрдВрдкрд╛рдЗрд▓рд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реЛрдиреЗ рдкрд░ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝рдХрдореНрдкреЛрдиреЗрдВрдЯ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдЧрд╛ред
рдЖрдВрд╢рд┐рдХ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдЖрдЧрдорди рд╕реЗ рдкрд╣рд▓реЗ рдХреЗ рдпреБрдЧ рдореЗрдВ, VB рдЯреАрдо рдиреЗ WinForms рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯ рдХреЛрдб рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпреБрджреНрдз рдЫреЗрдбрд╝ рджрд┐рдпрд╛ред рд▓реЗрдХрд┐рди
Partial
рд╕рд╛рде рднреА
Partial
рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЙрддреНрдкрдиреНрди рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╕реЗ рдЕрдкрдиреА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдШреЛрд╖рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдпрд╛ рдирд╣реАрдВ рддреЛ рдЗрд╕рдХреА рдШреЛрд╖рдгрд╛ рдХрд░реЗрдВред рдЗрд╕рдХреЗ рдмрд┐рдирд╛, рдбрд┐рдЬрд╛рдЗрдирд░ рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ рдЙрд╕реЗ
InitializeComponent
, рдФрд░ рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рднреА рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рддреЛ рд╡реЗ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╣реЛрдВрдЧреЗ, рдпрд╛ рдЯреВрд▓рдХрд┐рдЯ рдХреЛ рдбрд┐рдЬрд╝рд╛рдЗрдирд░ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдХ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдбрд┐рдЬрд╝рд╛рдЗрдирд░ рдореЗрдВ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдореМрдЬреВрдж рд╣реИред
14. рдЖрдВрд╢рд┐рдХ рд╕рдВрд╢реЛрдзрдХ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкреНрд░рдХрд╛рд░ рдЖрдВрд╢рд┐рдХ рдирд╣реАрдВ рд╣реИ
рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ, VB рдореЗрдВ, рдХреЗрд╡рд▓ рдПрдХ рд╡рд░реНрдЧ рдХреЛ рдЖрдВрд╢рд┐рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдЖрдорддреМрд░ рдкрд░ (рдЬреАрдпреВрдЖрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ) рдПрдХ рдЙрддреНрдкрдиреНрди рдлрд╝рд╛рдЗрд▓ рд╣реИред
рдХреНрдпреЛрдВ? рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕реБрдВрджрд░ рдФрд░ рд╕реНрд╡рдЪреНрдЫ рд░рдЦрддрд╛ рд╣реИ, рдФрд░ рдЬрдирд░реЗрдЯ рдХрд┐рдП рдЧрдП рдХреЛрдб рдХреЛ рдХрд╕реНрдЯрдо рдХреЛрдб рдмрдирд╛рдиреЗ рдпрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдЕрдиреБрд╢рдВрд╕рд╛ рдХреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдПрдХ рд╡рд░реНрдЧ рдореЗрдВ рдХреЛрдИ рдЖрдВрд╢рд┐рдХ рд╕рдВрд╢реЛрдзрдХ рдирд╣реАрдВ рд╣реИ, рдЕрдиреНрдпрдерд╛ рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рдЬрд╛рд░реА рдХреА рдЬрд╛рддреА рд╣реИред
15. рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ, рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкрд╣реБрдВрдЪ рдХрд╛ рд╕реНрддрд░ рдЦреЗрддреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╣рд░ рдЪреАрдЬ рдХреЗ рд▓рд┐рдП рд╣реИ, рдФрд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдореЗрдВ, рдЦреЗрддреЛрдВ рдХреЗ рд▓рд┐рдП рднреА
рдореБрдЭреЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдорд┐рд╢реНрд░рд┐рдд рднрд╛рд╡рдирд╛рдПрдВ рд╣реИрдВред C # рдореЗрдВ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдм рдХреБрдЫ
private
рд╣реИ (рдЪреАрдпрд░реНрд╕, рдЗрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди!), рд▓реЗрдХрд┐рди рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЕрдХреНрд╕рд░ рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рддрд░реНрдХ рд╣реИ: рдПрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЕрдиреБрдмрдВрдз рдпрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдгред рдЧреБрдг рдФрд░ рдШрдЯрдирд╛рдПрдВ рдЖрдо рддреМрд░ рдкрд░ рдмрд╛рд╣рд░реА (
public
) рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдкреНрд░реЗрдд рд╣реИрдВ, рдФрд░ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ
public
рдЕрд▓рд╛рд╡рд╛ рдЕрдиреНрдп рддрдХ рдирд╣реАрдВ рдкрд╣реБрдБрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВ рд╢рд╛рдпрдж рд╣реА рдХрднреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкрд╣реБрдВрдЪ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реВрдВ (рдЗрд╕ рдЖрд▓реЗрдЦ рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рдЬреИрд╕реЗ рдбреЗрдореЛ рдХреЗ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде)ред
16. VB рдЙрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдЖрд░рдореНрдн рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдзрд╛рд░ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ C # рдЙрдиреНрд╣реЗрдВ рдЖрд░рдВрднрд┐рдХ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдзрд╛рд░ рдирд┐рд░реНрдорд╛рддрд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ
рдХреНрдпрд╛ рдЖрдкрдиреЗ рд╕реБрдирд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ "рдХреБрдЫ" рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдкрд╣рд▓реА рдЪреАрдЬ рдЬреЛ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рд╣реЛрддреА рд╣реИ рд╡рд╣ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдХреЗ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрд▓ рд╣реИ? рдЦреИрд░, рдпрд╣ рдорд╛рдорд▓рд╛ рдирд╣реАрдВ рд╣реИ, рдХрдо рд╕реЗ рдХрдо C # рдореЗрдВред
base()
# рд╕реЗ рдкрд╣рд▓реЗ, рдХреЙрд▓рд┐рдВрдЧ
base()
, рд╕реНрдкрд╖реНрдЯ рдпрд╛ рдирд┐рд╣рд┐рдд, рдлрд╝реАрд▓реНрдб рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝рд░ рдХреЛ рдкрд╣рд▓реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдлрд┐рд░ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЙрд▓, рдФрд░ рдлрд┐рд░ рдЖрдкрдХрд╛ рдХреЛрдбред рдЗрд╕ рдирд┐рд░реНрдгрдп рдХреЗ рдкрд░рд┐рдгрд╛рдо рд╣реИрдВ, рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рднрд╛рд╖рд╛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдПрдХ рдпрд╛ рджреВрд╕рд░реЗ рд░рд╛рд╕реНрддреЗ рдкрд░ рдХреНрдпреЛрдВ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЗрдирдореЗрдВ рд╕реЗ рдПрдХ рдкрд░рд┐рдгрд╛рдо рдпрд╣ рд╣реИ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреЛ рд╕реАрдзреЗ C # рдореЗрдВ рдЕрдиреБрд╡рд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
Imports System.Reflection Class ReflectionFoo Private StringType As Type = GetType(String) Private StringLengthProperty As PropertyInfo = StringType.GetProperty("Length") Private StringGetEnumeratorMethod As MethodInfo = StringType.GetMethod("GetEnumerator") Private StringEnumeratorType As Type = StringGetEnumeratorMethod.ReturnType Sub New() Console.WriteLine(StringType) End Sub End Class
gist.github.com/AnthonyDGreen/37d01c8e7f085e06172bfaf6a1e567d4#file-field-init-me-reference-vbрдЙрди рджрд┐рдиреЛрдВ рдореЗрдВ рдЬрдм рдореИрдВ рдкрд░рд╛рд╡рд░реНрддрди рдореЗрдВ рд▓рдЧрд╛ рд╣реБрдЖ рдерд╛, рдореИрдВрдиреЗ рдЕрдХреНрд╕рд░ рдРрд╕реЗ рдХреЛрдб рд▓рд┐рдЦреЗред рдФрд░ рдореИрдВ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ (рдЬреЛрд╢) рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рд╕рд╣рдХрд░реНрдореА рдХреЛ рдпрд╛рдж рдХрд░рддрд╛ рд╣реВрдВ, рдЬрд┐рд╕рдиреЗ рдореЗрд░реЗ рдХреЛрдб рдХреЛ C # рдореЗрдВ рдЕрдиреБрд╡рд╛рджрд┐рдд рдХрд┐рдпрд╛ рдерд╛, рдХрднреА-рдХрднреА рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕рднреА рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝рд░ рдХреЛ рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╢рд┐рдХрд╛рдпрдд рдХрд░рддрд╛ рдерд╛ред C # рдореЗрдВ,
base()
рдХрд╣реЗ рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдмрдирд╛рдИ рдЬрд╛ рд░рд╣реА рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдирд╛ рдирд┐рд╖рд┐рджреНрдз рд╣реИред рдФрд░ рдЬрдм рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЙрд▓ рд╕реЗ рдкрд╣рд▓реЗ рдлрд╝реАрд▓реНрдб рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝рд░ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡реЗ рдЕрдиреНрдп рдХреНрд╖реЗрддреНрд░реЛрдВ рдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдХрд┐рд╕реА рднреА рд╕рджрд╕реНрдп рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рддреЛ рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдХреЗрд╡рд▓ VB рдореЗрдВ рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
MustInherit Class Base
gist.github.com/AnthonyDGreen/fe5ca89e5a98efee97ffee93aa684e50#file-base-derived-init-vbрдпрд╣рд╛рдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЖрдзрд╛рд░ рд╡рд░реНрдЧ рд╣реИ, рдЬрд┐рд╕реЗ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдкреНрд░рдмрдВрдзрди, рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкреНрд░рдореБрдЦ рд╡рд╕реНрддреБ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рд╡реНрдпреБрддреНрдкрдиреНрди рдкреНрд░рдХрд╛рд░ рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЖрдорддреМрд░ рдкрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐:
- рд╡рд╣ рдЫреЛрдЯрд╛ рд╣реИ;
- рдореБрдЭреЗ рдПрдХ рдирд┐рд░реНрдорд╛рддрд╛ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ;
- рдореБрдЭреЗ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛ рдореЗрдВ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЛрдб рдбрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдпрджрд┐ рдХреЛрдИ рд╣реЛ;
- рдореБрдЭреЗ рдмрдирд╛рдИ рдЧрдИ рд╡рд╕реНрддреБ рдХреЛ рдХреИрд╢ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдФрд░ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рд╡рд╕реНрддреБ рдХреЗ рд▓рд┐рдП рднрдВрдбрд╛рд░рдг рдХреА рдШреЛрд╖рдгрд╛ рдФрд░ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рд╡реНрдпреБрддреНрдкрдиреНрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрдм рдпрд╣ рдСрдЯреЛ-рдЧреБрдгреЛрдВ рдХреЗ рд╕рд╛рде рдРрд╕реА рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рджреЛрдиреЛрдВ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рд░рд╣рд╛ рд╣реВрдБ: рдЬрдм рдПрдХ рд╡реНрдпреБрддреНрдкрдиреНрди рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдПрдХ рдлрд╝реАрд▓реНрдб рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдореЗрдВ рдШреЛрд╖рд┐рдд рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдФрд░ рдЬрдм рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдХреЗ рдлрд╝реАрд▓реНрдб рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝рд░ рдХреЛ рд╡реНрдпреБрддреНрдкрдиреНрди рдкреНрд░рдХрд╛рд░ рджреНрд╡рд╛рд░рд╛ рд▓рд╛рдЧреВ
MustOverride
рд╕рджрд╕реНрдп рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рджреЛрдиреЛрдВ VB рдореЗрдВ рдорд╛рдиреНрдп рд╣реИрдВ рдФрд░ C # рдореЗрдВ рдХреЛрдИ рднреА рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЗрд╕рд╕реЗ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдпрджрд┐ C # рдлрд╝реАрд▓реНрдб рдЗрдирд┐рд╢рд▓рд╛рдЗрдЬрд╝рд░ рдХреЛ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдХрд╛ рд╕рджрд╕реНрдп рдХрд╣ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕рджрд╕реНрдп рдмреЗрд╕ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ (рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рдирд╣реАрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИ) рдореЗрдВ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд┐рдП рдЧрдП рдлрд╝реАрд▓реНрдб рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдкрд░рд┐рдгрд╛рдо рд▓рдЧрднрдЧ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЧрд▓рдд рд╣реЛрдВрдЧреЗ, рдФрд░ рдЗрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреЛрдИ рд░рд╛рд╕реНрддрд╛ рдирд╣реАрдВ рдерд╛ред
рд▓реЗрдХрд┐рди VB рдореЗрдВ, рдмреЗрд╕ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдкрд╣рд▓реЗ рд╣реА рдХрд╛рдо рдХрд░ рдЪреБрдХрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдХреБрдЫ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ! рд╡рд┐рдкрд░реАрдд рдкрд░рд┐рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╕рдм рдХреБрдЫ рдереЛрдбрд╝рд╛ рдФрд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдХреЗ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝рд░ (рдпрд╛ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░) рд╕реЗ
Overridable
рдореЗрдВрдмрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ тАЬрдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝тАЭ рд╣реЛрдиреЗ рдкрд░ рдЦреЗрддреЛрдВ рддрдХ рдкрд╣реБрдБрдЪ рдмрдирд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИред рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЖрдкрдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдореЗрд░реА рд▓рд┐рдкрд┐рдпреЛрдВ рдореЗрдВ, рдпрд╣ рдмрд╕ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рд╡реЗ рдЙрджрд╛рд╣рд░рдг рдХреА рд╕реНрдерд┐рддрд┐ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди
Shared
рд╕рджрд╕реНрдп рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рд▓реЗрдЦ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдкрд░реЗ рддрдХрдиреАрдХреА рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрд┐рд╕реА рднреА рднрд╛рд╖рд╛ рдореЗрдВ
Shared Overridable
рд╕рджрд╕реНрдп рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдХрд╕реНрдЯрдо рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝рд░ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЦреЗрддреЛрдВ рдХрд╛ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ - рд╡реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рдЖрд░рдВрднреАрдХреГрдд рд╣реЛрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ VB рдореЗрдВ рд╕рднреА рдЪрд░ред рдХреЛрдИ рдЖрд╢реНрдЪрд░реНрдп рдирд╣реАрдВред
рддреЛ рдХреНрдпреЛрдВ? рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЕрдЧрд░ рдореЗрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдореВрд▓ VB.NET рдЯреАрдо рдХреЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рдереАрдВ, рдЬрдм рдЙрдиреНрд╣реЛрдВрдиреЗ рдЗрд╕реЗ рдбрд┐рдЬрд╛рдЗрди рдХрд┐рдпрд╛ рдерд╛ред рдпрд╣ рд╕рд┐рд░реНрдл рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ! , : VB , , . . .
, , , C# VB, , VB , C#.17. (backing field) VB , C#,
( ).
E
, VB ( IDE)
EEvent
. C#
E
, ,
E
, .
18. VB
P
,
_P'
. IntelliSense, . C# ┬л┬╗ (
mangled ) , , C# .
? VB , -, ┬лWithEvents┬╗, -, , - , .
19. read-only
, , тАж. VB ┬л ┬╗ .
WithEvents
-, non-Custom , , . IntelliSense, , , . FTW! , VB , private set; C#.
Class Alarm Private ReadOnly Code As Integer ReadOnly Property Status As String = "Disarmed" Sub New(code As Integer) Me.Code = code End Sub Sub Arm()
gist.github.com/AnthonyDGreen/57ce7962700c5498894ad417296f9066#file-read-only-auto-property-backing-field-is-writeable-vb20.
,
NonSerialized
.
VB (expanded) Custom- 2005 (?)
, , ,
NonSerialized
. , , , , ┬л┬╗ , ┬л ┬╗.
, , , , . , , , , two-way bindable ( ,
PropertyChanged
), , , , , .
, , CLSA ┬лExpert Business Objects┬╗
(Rocky Lhotka) , undo/redo ( , , - , , ), . , . , , , .
21. тАФ , ; ( )
,
GoTo
. , - . ,
For
For Each
;
Using
,
SyncLock
With
, , ,
Finally
.
If
Select Case
,
Do
While
, Try тАФ , :
Module Program Sub Main() Dim retryCount = 0 Try Retry:
gist.github.com/AnthonyDGreen/b93adcf3c3705e4768dcab0b05b187a0#file-try-goto-retry-vb, , , .NET VB ┬л┬╗. VB6 Quick Basic ( ) . QB, . , ┬л ┬╗, . GoTo, тАФ , .
:
Try
, VB -
await
Catch
Finally
, ,
GoTo
.
22. <>
, VB ( ) (
static
) ( ). , .
Catch
3 .
Try
Catch
, , ,
Try
.
, VB.NET , . CLR VB . : , .
, C# , , ┬л┬╗. VB.NET .23.
, , C# ┬л ┬╗ (
definite assignment ). , , , ┬л ┬╗. , ( ) , , . C/C++. , ! , . , , , тАФ . , , , , , , , , . , BASIC , , ┬л┬╗ ,
= Nothing
,
= 0
,
= False
..
, (
flow analysis ) VB , .
, C# , , , . VB
, , , . Roslyn, , API ┬л ┬╗, , .
24. RaiseEvent , null
, - C# VB.
RaiseEvent
VB тАФ ,
null
( ),
null
- тАФ , .
gist.github.com/AnthonyDGreen/c3dea3d91ef4ffc50cfa92c41f967937#file-null-safe-event-raising-vb, null-conditional C# VS2015 C# , VB ( ), , ; VB.NET .
25. ; (shallow clone)
, , 17 , , . (boxed) Object,
System.Runtime.CompilerServices.RuntimeHelper.GetObjectValue
. , CLR. , :
, , , , (
late-bound situations ). , , ( ) , , , , (
caller's copy ). , , - , тАФ .
. :
Class MyEventArgs Property Value As Object End Class Structure MyStruct Public X, Y As Integer End Structure Module Program Sub Main() Dim defaultValue As Object = New MyStruct With {.X = 3, .Y = 5} Dim e = New MyEventArgs With {.Value = defaultValue} RaiseEvent DoSomething(Nothing, e) If e.Value Is defaultValue Then
gist.github.com/AnthonyDGreen/422ac4574af92d9bbbf59f0fbc40b74d#file-get-object-value-vb, WPF, . , . , , . , . , - , , , .
, , ┬л ┬╗ . IronRuby/Python,
dynamic
C# ( C#): C#
GetObjectValue
.
object.ReferenceEquals
, , ,
-
dynamic
C# ( ).
==
, . C#, , .
26. Select Case ┬л┬╗ (fall-through); break
Friday , Sunday тАФ , 5 .
Module Program Sub Main() Select Case Today.DayOfWeek Case DayOfWeek.Monday: Case DayOfWeek.Tuesday: Case DayOfWeek.Wednesday: Case DayOfWeek.Thursday: Case DayOfWeek.Friday: Console.WriteLine("Weekday") Case DayOfWeek.Saturday: Case DayOfWeek.Sunday: Console.WriteLine("Weekend") End Select End Sub End Module
gist.github.com/AnthonyDGreen/7b7e136c71dd11b2417a6c7267bb3546#file-select-case-no-fallthrough-vbRoslyn C# , - :
┬л, ? !┬╗ ┬л, ┬╗ . . VS , , , , , . !
. C# , C, C. . , C# , case . - ,
goto
,
break
. VB
break
,
Exit Select
, , VB .
27. Case
, . C#, :
Module Program Sub Main() Select Case Today.DayOfWeek Case DayOfWeek.Monday, DayOfWeek.Tuesday, DayOfWeek.Wednesday, DayOfWeek.Thursday, DayOfWeek.Friday Dim message = "Get to work!" Case DayOfWeek.Saturday, DayOfWeek.Sunday Dim message = "Funtime!" End Select End Sub End Module
gist.github.com/AnthonyDGreen/bd642061896246c9336255881fb78546#file-select-case-scopes-vb,
message
, C#
switch
case
тАФ . . , , - ( , C): , , , , .
28, 29, 30. Select Case , =
, , , ,
Select Case
.
, , . :
Select Case
тАФ , , тАж
switch
тАФ / , ┬л ┬╗.
, 26-30.
switch
, , , ,
if
. IL
switch
, ,
If
, VB , . switch , , C . VB .
31. , ,
x
, , -1, -2, -3:
Module Program Sub Main() For i = 1 To 3 Dim x As Integer x -= 1 Console.WriteLine(x) Next End Sub End Module
gist.github.com/AnthonyDGreen/cbc3a9c70677354973d64f1d993a3c5d#file-loop-variables-retain-their-values-vb┬л , , ┬╗ ( ). , VB2008 , -:
Module Program Sub Main() Dim lambdas = New List(Of Action) For i = 1 To 3 Dim x As Integer x -= 1 lambdas.Add(Sub() Console.WriteLine(x)) Next For Each lambda In lambdas lambda() Next End Sub End Module
gist.github.com/AnthonyDGreen/2ef9ba3dfcf9a1abe0e94b0cde12faf1#file-loop-variables-captured-per-iteration-vb-1, -2, -3.
x
тАФ ┬л ┬╗, -
x
, . ,
x
. flow analysis API тАФ ! (
┬лтАж тАж ?┬╗ )
? , , , , , #22. , , -, .
, VB C# (
control variables )
For Each
VS2012 (?), - ┬л ┬╗. 10000% , ( , VB , ). , VB
For
, . , . , VB
For
For Each
,
for
foreach
C#. ,
For
VB - , , .
32. For
For
. , , 1,3,5,7,9, , .
Module Program Sub Main() Dim lower = 1, upper = 9, increment = 2 For i = lower To upper Step increment Console.WriteLine(i) upper += 1 increment -= 1 Next End Sub End Module
gist.github.com/AnthonyDGreen/1e48113be204f515c51e221858666ac7#file-for-loop-bounds-cached-vb, ( ), , , ,
IndexOutOfRangeExceptions
, .
, , , , , C, VB . - , VB ,
For i = a To b Step c
( ,
i> b
) ( ,
i <b
),
c
? , , ,
b
, тАФ . , , , , .
33. For Each VB GetEnumerator
For Each
,
IEnumerable
,
GetEnumerator
,
For Each
.
, ,
For Each
IEnumerator
, , :
Module Program Sub Main() Dim list = New List(Of Integer) From {1, 2, 3, 4, 5} Dim info = list.FirstAndRest() If info.First IsNot Nothing Then Console.Write(info.First.GetValueOrDefault()) For Each other In info.Additional Console.Write(", ") Console.Write(other) Next Console.WriteLine() End If End Sub <Runtime.CompilerServices.Extension> Function FirstAndRest(Of T As Structure)(sequence As IEnumerable(Of T)) As (First As T?, Additional As IEnumerator(Of T)) Dim enumerator = sequence.GetEnumerator() If enumerator.MoveNext() Then Return (enumerator.Current, enumerator) Else Return (Nothing, enumerator) End If End Function <Runtime.CompilerServices.Extension> Function GetEnumerator(Of T)(enumerator As IEnumerator(Of T)) As IEnumerator(Of T) Return enumerator End Function End Module
gist.github.com/AnthonyDGreen/d7dbb7a5b98a940765c4adc33e3eaeee#file-for-each-extension-get-enumerator-vbF# ,
IEnumerator
,
For Each
, .
VB , (
well-known name ), . , , Add, . C# , (.
async
/
await
). , C# Roslyn () , .
рд╡рд┐рдЬреНрдЮрд╛рдкрди рдХрд╛ рдорд┐рдирдЯред 15-16 - .NET- DotNext 2019 Piter . , . , . .