рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдФрд░ рдЬрд▓реНрджреА рд╕реЗ рд╕реА ++ рд╕реАрдПрд▓рдЖрдИ рдХреЛ рд╕рдордЭреЗрдВ

рдРрд╕рд╛ рд╣реБрдЖ рдХрд┐ рдЬреИрд╕реЗ рд╣реА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдореБрдЭреЗ C ++ / CLI рдХрд╛ рдЧрд╣рдирддрд╛ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░, рддрджрдиреБрд╕рд╛рд░, рдЕрдХреНрд╕рд░ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЛ рд╕рдордЭрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ, рдФрд░ рдмрд┐рд▓реНрдХреБрд▓ рдХреНрдпреЛрдВред рдЗрд╕рд▓рд┐рдП рд╕рдордп рдХреЗ рд╕рд╛рде, рднрд╛рд╖рд╛ рдХреЗ рдЕрд╡рд▓реЛрдХрди рдХреЗ рд╕рд╛рде рдПрдХ рд▓реЗрдЦ рд▓рд┐рдЦрдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рдереА, рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рдЙрддреНрддрд░ рдФрд░ рдЙрди рд╕реНрдерд╛рдиреЛрдВ рдХреЛ рджрд┐рдЦрд╛рдирд╛ рдЬрд╣рд╛рдВ рд░реЗрдХ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред



рдпрд╣ рдХреНрдпрд╛ рд╣реИ





рдЬрдм Microsoft рдиреЗ .Net рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдмрдирд╛рдпрд╛, рддреЛ рдЙрд╕рдиреЗ рдХрдИ рдореМрдЬреВрджрд╛ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░реНрд╕ рдХреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЬрд┐рд╕рдХреЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдореЗрдВ рдХреБрдЫ рдмрджрд▓рд╛рд╡ рдереЗ - VB, C ++ред рдпрд╣ рдмрд╛рдж рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реЛрдЧрд╛ред рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рдпрджрд┐ рдореЗрд░реА рдореЗрдореЛрд░реА рдореБрдЭреЗ рд╕рд╣реА рд╕реЗрд╡рд╛ рджреЗрддреА рд╣реИ, рддреЛ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рднрд╛рд╖рд╛ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╕рд╛рде C ++ рдХрд╣рд╛ рдЧрдпрд╛ рдерд╛ред рдирд╛рдо, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдерд╛, рд╕рд╛рд░ рдкрд░ рд╕рдВрдХреЗрдд рджреЗрддрд╛ рд╣реИ - рдпрд╣рд╛рдВ рд╣рдордиреЗ рдЖрдкрдХреЛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╕рд╛рде рдкреНрд▓рд╕рд╕ рджрд┐рдП рд╣реИрдВ рдФрд░ рдЕрдм рдЖрдк рд╕реНрд░реЛрдд рднрд╛рд╖рд╛ рдХреА рд╕рднреА рд╢рдХреНрддрд┐ рдХреЛ рдЫреЛрдбрд╝рддреЗ рд╣реБрдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреНрд░рд╕рд┐рджреНрдз C ++ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ .Net рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рджрд░рдЕрд╕рд▓, рд╕рд┐рдВрдЯреИрдХреНрд╕ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдкрд╣рд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рднрдпрд╛рдирдХ рдерд╛, рдФрд░ рдХреЛрдб рдХреЛ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдФрд░ рдЬрд╝рд┐рд░рд┐рдиреЛрд╡рд╕реНрдХреА рдФрд░ рдЪреЗрд░рдиреЛрдорд┐рд░реНрдбрд┐рди рдХреЗ рдмреАрдЪ рдПрдХ рд╕рдВрд╡рд╛рдж рдХреЛ рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рднреЗрдЬрдиреЗ рдХреЗ рдкреНрд░рдпрд╛рд╕ рдХреА рддрд░рд╣ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛:

//

public __gc class Class1

{

public :

// , int

int Method1(__gc int &refValue, __gc int [] managedArr);

};



* This source code was highlighted with Source Code Highlighter .






рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдореЗрдВ рдПрдХ рджреЗрд╢реА рдкреНрд░рдХрд╛рд░ рдФрд░ рдПрдХ рдкреНрд░рдмрдВрдзрд┐рдд рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕реВрдЪрдХ рдХреЗ рдмреАрдЪ рдХреЛрдИ рдЕрдВрддрд░ рдирд╣реАрдВ рдерд╛ (рджреЛрдиреЛрдВ рдорд╛рдорд▓реЛрдВ рдореЗрдВ "*" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛), рд╢реВрдиреНрдп рд╕реВрдЪрдХ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдХреАрд╡рд░реНрдб рдирд╣реАрдВ рдерд╛, рдФрд░ рдЗрд╕реА рддрд░рд╣ред рдЗрд╕рдиреЗ Microsoft рдХреЛ рднрд╛рд╖рд╛ рдХрд╛ рдПрдХ рдирдпрд╛ рд╕рдВрд╢реЛрдзрди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛, рдЬрд┐рд╕рдХреА рдЪрд░реНрдЪрд╛ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдХреА рдЬрд╛рдПрдЧреАред

рдиреЛрдЯ: рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рдЗрди рджреЛ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡рд┐рдЪрд┐рддреНрд░ рд░реВрдк рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд, "рдкреБрд░рд╛рдирд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕" рдФрд░ "рдирдпрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕", рдФрд░ рдЬреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдВрдХрд▓рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдирдИ рдЕрд╕реЗрдВрдмрд▓реА рдмрдирд╛рддреЗ рд╕рдордп, рдирдП рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкреБрд░рд╛рдиреЗ рдХреЛ рдЕрдкреНрд░рдЪрд▓рд┐рдд рдФрд░ рдмрд╕ рдЦрд░рд╛рдм рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред



рдХреНрдпреЛрдВ рдЬрд░реВрд░реА рд╣реИ?





1) рдЗрд╕ рднрд╛рд╖рд╛ рдХреА рдорджрдж рд╕реЗ, рдПрдХ рд╡реИрдХреНрдпреВрдо рдореЗрдВ рдПрдХ рдЧреЛрд▓рд╛рдХрд╛рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЕрдкрдиреЗ рдкрд╕рдВрджреАрджрд╛ рдкреНрд▓рд╕рд╕ рдкрд░ рдПрдХ рдкреВрд░реНрдг рд╡рд┐рдХрд╕рд┐рдд рдиреЗрдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛ред рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдореЗрд░реЗ рд▓рд┐рдП рдЗрд╕ рд╡рд┐рдХреГрдд рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рдирд╛ рдХрдард┐рди рд╣реИ, рдФрд░ Microsoft рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ рдпреЛрдЧрджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рд╡рд╣ C ++ рдХреЗ рддрд╣рдд рджреГрд╢реНрдп рдШрдЯрдХ рди рд╣реЛред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╡рд╣ рдЗрд╕реЗ рд╕рд╣реА рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдРрд╕реЗ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЕрднрд┐рд╡реНрдпрдВрдЬрдХ рднрд╛рд╖рд╛рдПрдВ рд╣реИрдВ, рд╡рд╣реА рд╕реА #ред рддреЛ рдпрд╣ рдПрдХ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред



2) рдЖрдк рдкреЗрд╢реЗрд╡рд░реЛрдВ рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рд▓рд┐рдЦреЗ рдЧрдП рдХреЛрдб рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рджрд░рдЕрд╕рд▓, рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрднреА рднреА рдирд┐рдпрдорд┐рдд рд╕реА ++ рдХреА рд╕рднреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдореВрд▓ рдкреНрд▓рд╕рд╕ рдкрд░ рдореМрдЬреВрджрд╛ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдмрдВрдзрд┐рдд рд░реИрдкрд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ PInvoke рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдкреНрд░рдмрдВрдзрд┐рдд рдХреЛрдб рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЕрд╡рд╕рд░ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рдпрд╣ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рдПред



3) рдЖрдк C ++ CLI рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдкреНрд░рджрд░реНрд╢рди рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рджрд░рдЕрд╕рд▓, .Net рдХреЗ рд▓рд┐рдП рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдкреВрд░реЗ рдЪрд┐рдбрд╝рд┐рдпрд╛рдШрд░ рдХреЗ рдмреАрдЪ, C ++ рдЕрджреНрд╡рд┐рддреАрдп рд╣реИ рдХрд┐ рдЖрдк рдЙрд╕ рдкрд░ рдХреЛрдб рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╕реАрдзреЗ рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрди рдФрд░ рдлреНрд░реАрдЬрд┐рдВрдЧ, рдФрд░ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣:

// , .NetтАУ

public ref Class1

{

public :

// .Net-

void Method1();

{

BYTE *buff = new BYTE[100];



//do smth



delete[] buff;

}

};




* This source code was highlighted with Source Code Highlighter .








рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?





рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред C ++ / CLI рдореЗрдВ рдХреЛрдб рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╕рдордп, рдПрдХ рдЕрд╕реЗрдВрдмрд▓реА MSIL рдХреЛрдб рдФрд░ рдорд╢реАрди рдирд┐рд░реНрджреЗрд╢ рджреЛрдиреЛрдВ рд╕реЗ рдпреБрдХреНрдд рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ "рдХреНрд▓реАрди" рдкреНрд▓рд╕ рдкрд░ рд▓рд┐рдЦреА рдЧрдИ рд▓рд╛рдЗрдиреЗрдВ рдЪрд╛рд▓реВ рд╣реЛ рдЬрд╛рддреА рд╣реИрдВред "рд▓реЗрдХрд┐рди рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?" рдЖрдк рдкреВрдЫрддреЗ рд╣реИрдВ, рдФрд░ рдЖрдк рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╣реА рд╣реЛрдВрдЧреЗред рдХреЛрдИ рд░рд╛рд╕реНрддрд╛ рдирд╣реАрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ 32 рдФрд░ 64 рдмрд┐рдЯ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдмрд╛рдЗрдирд░реА рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрдЧрд╛ ("рдХрд┐рд╕реА рднреА рд╕реАрдкреАрдпреВ" рдХреЗ рддрд╣рдд рд╕рдм рдХреБрдЫ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП)ред рдпрд╣ C ++ рдХреА рд╕рднреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреБрдЧрддрд╛рди рдХреА рдЧрдИ рдХреАрдордд рд╣реИред рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдпрд╣ рдЙрд╕ рдорд╛рдорд▓реЗ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрдм рдкреНрд░рдмрдВрдзрд┐рдд рдФрд░ рдЕрдкреНрд░рдмрдВрдзрд┐рдд рдХреЛрдб рдХрд╛ рдорд┐рд╢реНрд░рдг рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрдИ рд╕рдВрдХрд▓рди рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ:

тАв рдПрдХ рд╕реАрдПрд▓рдЖрд░ - рдирдП рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рдмрдВрдзрд┐рдд рдФрд░ рджреЗрд╢реА рдХреЛрдб рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдердиред

тАв тАв clr: рд╢реБрджреНрдз - рдореВрд▓ рдХреЛрдб рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЖрдк рдЕрд╕реБрд░рдХреНрд╖рд┐рдд) рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрд╕ рд╕реАрдорд╛ рддрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕ рдкрд░ рдпрд╣ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, C # рдЕрд╕реЗрдВрдмрд▓реА рдореЗрдВ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред

тАв тАв clr: safe - рдХреЗрд╡рд▓ рд╕реБрд░рдХреНрд╖рд┐рдд рдХреЛрдб рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рддрд╛ рд╣реИред рдПрдирд╛рд▓реЙрдЧ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ C # рдЕрд╕реЗрдВрдмрд▓реА рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИред

тАв рдПрдХ clr: oldSyntax - / clr рдХрд╛ рдПрдирд╛рд▓реЙрдЧ, рдХреЗрд╡рд▓ рдкреБрд░рд╛рдиреЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред



рдпрд╣ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ?





рдпрд╣рд╛рдБ C # рдФрд░ C ++ / CLI рдХреЗ рд▓рд┐рдП рдореВрд▓ рдирд┐рд░реНрдорд╛рдгреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдг рджрд┐рдП рдЧрдП рд╣реИрдВред



рд╡рд░реНрдЧ рдШреЛрд╖рдгрд╛


C #:
public sealed class Class1 : Class2



* This source code was highlighted with Source Code Highlighter .






рд╕реА ++ / рд╕реАрдПрд▓рдЖрдИ:
public ref class Class1 sealed : Class2



* This source code was highlighted with Source Code Highlighter .








рд╕рдВрд░рдЪрдирд╛ рдШреЛрд╖рдгрд╛


C #:
public struct Class1 : IEquatable



* This source code was highlighted with Source Code Highlighter .






рд╕реА ++ / рд╕реАрдПрд▓рдЖрдИ:
public value class Class1 : IEquatable



* This source code was highlighted with Source Code Highlighter .








рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдШреЛрд╖рдгрд╛


C #:
public interface ISomeInterface



* This source code was highlighted with Source Code Highlighter .






рд╕реА ++ / рд╕реАрдПрд▓рдЖрдИ:
public interface class ISomeInterface



* This source code was highlighted with Source Code Highlighter .








рд╕реВрдЪреА рдХреА рдШреЛрд╖рдгрд╛


C #:
public enum Enum1

{

Val1,

Val2

}



* This source code was highlighted with Source Code Highlighter .






рд╕реА ++ / рд╕реАрдПрд▓рдЖрдИ:
public enum class Enum1

{

Val1,

Val2

}



* This source code was highlighted with Source Code Highlighter .








рдПрдХ рдкреНрд░рдмрдВрдзрд┐рдд рдЗрдХрд╛рдИ рдмрдирд╛рдирд╛


C #:
object obj = new object ();



* This source code was highlighted with Source Code Highlighter .






рд╕реА ++ / рд╕реАрдПрд▓рдЖрдИ:
Object ^obj = gcnew Object();



* This source code was highlighted with Source Code Highlighter .






C ++ / CLI рдореЗрдВ, рдкреНрд░рдмрдВрдзрд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "*" рдХреЗ рдмрдЬрд╛рдп "^" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрди рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХрд░рдирд╛ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдкрдХреЛ рдмрд╛рдж рдореЗрдВ рд╣рдЯрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдкрдХреЛ рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИред рд╕реНрдерд╛рдиреАрдп рд╕рдВрджрд░реНрдн рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╕рдордп, рдЖрдк рд╕реНрдЯреИрдХ рдХреЗ рд╢рдмреНрджрд╛рд░реНрде рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

рдСрдмреНрдЬреЗрдХреНрдЯ obj ();

рдпрд╣ рдпрд╛ рддреЛ рддрдм рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдЬрдм рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдЖрдИрдбреАрдЖрдИрд╕рдкреЛрдЬреЗрдмрд▓ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ (рд╣рдо рдЗрд╕ рдкрд░ рдмрд╛рдж рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВрдЧреЗ) рдпрд╛ рдореВрд▓реНрдп рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдПред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдореВрд▓реНрдп рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, C ++ / CLI C # рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕реНрд╡рддрдВрддреНрд░рддрд╛ рджреЗрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдпрд╣ рдЪреБрди рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд▓рд┐рдВрдХ рдпрд╛ рдореВрд▓реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдХреБрдЫ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдореБрдХреНрдХреЗрдмрд╛рдЬреА / рдЕрдирдмреЙрдХреНрд╕рд┐рдВрдЧ рд╕рдВрдЪрд╛рд▓рди рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдмрдЪрд╛рдирд╛ рдХрд╛рдлреА рд╕рдВрднрд╡ рд╣реИред



рдПрдХ рдкреНрд░рдмрдВрдзрд┐рдд рд╕рд░рдгреА рдмрдирд╛рдирд╛


C #:
object [] arr = new object [100];



* This source code was highlighted with Source Code Highlighter .






рд╕реА ++ / рд╕реАрдПрд▓рдЖрдИ:
array<Object ^> ^arr = gcnew array<Object ^>();



* This source code was highlighted with Source Code Highlighter .






рдорд╛рдирд╡рд░рд╣рд┐рдд рд╕рд░рдгрд┐рдпрд╛рдБ рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИрдВред



рдПрдХ рд╡рд┐рдзрд┐ рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд╕ рдХрд░рдирд╛


C #:
void Method( int byValue, ref int byRef, out int outValue);



* This source code was highlighted with Source Code Highlighter .






рд╕реА ++ / рд╕реАрдПрд▓рдЖрдИ:
void Method( int byValue, int %byRef, [ out ] int %outValue);



* This source code was highlighted with Source Code Highlighter .






рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпрджрд┐ "^" рдирд┐рдпрдорд┐рдд рд╕реА ++ рд╕реЗ "*" рдХрд╛ рдПрдирд╛рд▓реЙрдЧ рд╣реИ, рддреЛ "%" "рдФрд░" рдХрд╛ рдПрдХ рдПрдирд╛рд▓реЙрдЧ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рд╛рджреГрд╢реНрдп рдмрд╣реБрдд рд╕рдЯреАрдХ рд╣реИ рдФрд░ рди рдХреЗрд╡рд▓ рдЧреБрдЬрд░рддреЗ рд╣реБрдП рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рд▓рд┐рдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╕рдордп, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

void Method(ValueType val)

{

ValueType ^ ref = %val;

}




* This source code was highlighted with Source Code Highlighter .








рд╡рд┐рдзрд┐ рдУрд╡рд░рд░рд╛рдЗрдб


C #:
override void Method();

* This source code was highlighted with Source Code Highlighter .






рд╕реА ++ / рд╕реАрдПрд▓рдЖрдИ
virtual void Method() override ;



* This source code was highlighted with Source Code Highlighter .








IDisposable рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди


рд╕реА #:

class Class1 : Disposable

{

public void Dispose()

{

this .Dispose( true );



GC.SuppressFinalize( this );

}



protected virtual void Dispose( bool disposing)

{

if (disposing)

{

//release managed resources

}



//release unmanaged resources

}



~Class1()

{

this .Dispose( false );

}

}



* This source code was highlighted with Source Code Highlighter .






рд╕реА ++ / рд╕реАрдПрд▓рдЖрдИ:

ref class Class1

{

public :

// Dispose

~Class1()

{

//release managed resources



//call finalizer

this ->!Class1();

}



//

!Class1()

{

//release unmanaged resources

}

}




* This source code was highlighted with Source Code Highlighter .






рд╕реА ++ / рд╕реАрдПрд▓рдЖрдИ рдореЗрдВ, рдХрдВрдкрд╛рдЗрд▓рд░ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдбрд┐рд╕реНрдкреЛрдЬреЗрдмрд▓ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдЙрдкрд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рд╣реА рд╕рдВрдХрд▓рдХ рдЖрдкрдХреЛ рд╕реАрдзреЗ рдЖрдИрдбрд┐рд╕реНрдкреЛрдЬреЗрдмрд▓ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬрдм рдЖрдкрдХреЛ рдЗрд╕рдХреА рдЖрджрдд рд╣реЛ рдЬрд╛рддреА рд╣реИ, рддреЛ рдЖрдк рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛рдлреА рддрд╛рд░реНрдХрд┐рдХ рд╣реИ - рджреЛрд╣рд░рд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХреЛрдб рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рд╕рд╛рде рд╣реА, рд╕рд╛рдзрд╛рд░рдг C ++ рдХреЗ рд╕рдорд╛рди рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреА рдЙрдирдХреА рдЗрдЪреНрдЫрд╛ рдореЗрдВ, рднрд╛рд╖рд╛ рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рдФрд░ рднреА рдЖрдЧреЗ рдмрдврд╝реЗ рдФрд░ рджреЛ рддрд░реАрдХреЛрдВ рд╕реЗ рдирд┐рдкрдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдкрд╖реНрдЯ рдХреЙрд▓ рд╣реЛ рд╕рдХрддреА рд╣реИ:

obj->~Class1();



* This source code was highlighted with Source Code Highlighter .






рдФрд░

delete obj;

* This source code was highlighted with Source Code Highlighter .






рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдЧрд╛рд░рдВрдЯреАрдХреГрдд рд╕рдлрд╛рдИ рдХреЗ рд▓рд┐рдП рдЖрдк рд╕реНрдЯреИрдХ рдХреЗ рд╢рдмреНрджрд╛рд░реНрде рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

рд╕реА ++ / рд╕реАрдПрд▓рдЖрдИ:

{

A();



Class1 obj;



B();

}



* This source code was highlighted with Source Code Highlighter .




рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ

C #:

{

A();



using (Class1 obj = new Class1())

{

B();

}

}



* This source code was highlighted with Source Code Highlighter .








рдкрд░реНрджреЗ рдХреЗ рдкреАрдЫреЗ рдХреНрдпрд╛ рд░рд╣рддрд╛ рд╣реИ?





рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдПрдХ рд▓реЗрдЦ рдореЗрдВ рд╕рдм рдХреБрдЫ рдбрд╛рд▓рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рдерд╛ред рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рд╡рд╛рд▓:

тАв рдкреНрд░рддрд┐рдирд┐рдзрд┐рдпреЛрдВ, рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ, рд╡рд┐рд╕реНрддрд╛рд░ рд╡рд┐рдзрд┐рдпреЛрдВ, рдлрд╝реЙрд░рдЪ, рдФрд░ рдЕрдзрд┐рдХ рдХреЗ рд▓рд┐рдП рд╕рд┐рдВрдЯреИрдХреНрд╕ред

тАв рдЕрдкреНрд░рдмрдВрдзрд┐рдд рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рд╡рд╕реНрддреБрдУрдВ, рд╕рд░рдгрд┐рдпреЛрдВ, рдЖрджрд┐ рд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреБрдЧрд╛рдбрд╝ рдХрд░рдирд╛ред

тАв C # рдФрд░ рдирд┐рдпрдорд┐рдд C ++ рдореЗрдВ рдХреНрдпрд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИ рдФрд░ рдХреНрдпрд╛ рдирд╣реАрдВ

тАв рд╕реА ++ / рд╕реАрдПрд▓рдЖрдИ рдЕрд╕реЗрдВрдмрд▓рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЖрд╡реЗрджрди рд╕рдВрдХрд▓рди рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ

тАв рдкреНрд░рджрд░реНрд╢рди рдореБрджреНрджреЛрдВред рдореБрдЭреЗ рдЬреАрдд рдХрдм рдФрд░ рдХреИрд╕реЗ рдорд┐рд▓ рд╕рдХрддреА рд╣реИ? рдЖрдк рдЕрдЪрд╛рдирдХ рдХрд╣рд╛рдВ рдЦреЛ рд╕рдХрддреЗ рд╣реИрдВ?



рдХреНрдпрд╛ рдкрдврд╝рдирд╛ рд╣реИ?





1. рд╕реА # рдФрд░ рд╕реА ++ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреА рддреБрд▓рдирд╛: www.cyberforum.ru/cpp-cli/thread83662.html

2. рдореБрдЦреНрдп рд╡рд┐рд╢рд┐рд╖реНрдЯ рднрд╛рд╖рд╛ рдирд┐рд░реНрдорд╛рдг: msdn.microsoft.com/en-us/library/xey702bw.aspx

3. C ++ / CLI рдХреЗ рд▓рд┐рдП рдорд╛рдЗрдЧреНрд░реЗрд╢рди: msdn.microsoft.com/en-us/library/ms235289.aspx



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





.Net рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдЕрдиреНрдп рд╕рднреА рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ, C ++ / CLI рдХрд╛рдлреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИред рдпрд╣ рд╢рд╛рдпрдж рд╣реА рдЗрд╕ рдкрд░ рдПрдХ рдорд╛рдирдХ .Net рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореМрдЬреВрджрд╛ рд╕реА ++ рдХреЛрдб рдХреЗ рд╕рд╛рде рдпрд╛ рдЕрдиреБрдХреВрд▓рди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдЪрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣ рд╣реИред



All Articles