рдЙрд▓реНрд▓реВ рдФрд░ рдЧреНрд▓реЛрдм рдореБрджреНрджреЗ: рджреЛ рд╡рд┐рдзрд╛рдирд╕рднрд╛рдУрдВ рдХреЛ рд╕рдорд╛рди рдирд╛рдорд╕реНрдерд╛рди рдФрд░ рд╡рд░реНрдЧ рдирд╛рдореЛрдВ рд╕реЗ рдЬреЛрдбрд╝рдирд╛


рдЖрдЬ рд░рд╛рдд, рдЬреЗрд▓рд╕ рдиреЗ рдПрдХ рдмрд╛рддрдЪреАрдд рд╢реБрд░реВ рдХреА рдХрд┐ рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ рд╡рд┐рднрд┐рдиреНрди рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдмрд╛рддрдЪреАрдд рдХреЗ рджреМрд░рд╛рди, рд╣рдо рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдХреА рдЪрд░реНрдЪрд╛ рдореЗрдВ рдЖрдП, рдЬрдм рдЖрдкрдХреЛ .NET рдХреЛрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рджреЛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕рдорд╛рди рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ рд╕рдорд╛рди рдирд╛рдо рд╡рд╛рд▓реА рдХрдХреНрд╖рд╛рдПрдВ рд╣реЛрддреА рд╣реИрдВред рдЪреВрдВрдХрд┐ рдореИрдВ .NET рдХреЛрд░ рдХрд╛ рдПрдХ рдмрд╣реБрдд рдХреБрдЫ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдпрд╣ рдЬрд╛рдВрдЪрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХреИрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдЧреЗ рдХреНрдпрд╛ рд╡рд░реНрдгрд┐рдд рд╣реИ


рдЕрд╕реНрд╡реАрдХрд░рдг ред рдХреНрдпрд╛ рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рдЕрдХреНрд╕рд░ рд╣реЛрддреА рд╣реИрдВ? .NET рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ 10 рд╕реЗ рдЕрдзрд┐рдХ рд╡рд░реНрд╖реЛрдВ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдХрднреА рднреА рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЗрд╕реА рддрд░рд╣ рдХреА рд╕реНрдерд┐рддрд┐ рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдирд╣реАрдВ рдкрдбрд╝рд╛ рд╣реИред рд▓реЗрдХрд┐рди рдкреНрд░рдпреЛрдЧ рджрд┐рд▓рдЪрд╕реНрдк рдерд╛ред


рдмрд╕ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВ рд╕реНрдкрд╖реНрдЯ рдХрд░реВрдБрдЧрд╛ рдХрд┐ рдореИрдВ рдкреНрд░рдпреЛрдЧ рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░реВрдБрдЧрд╛:


  • MacOS 10.13,
  • .NET рдХреЛрд░ рдПрд╕рдбреАрдХреЗ 2.1.302
  • рд╕рд╡рд╛рд░ 2018.2

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


рдкреНрд░рдпреЛрдЧ рдХреА рддреИрдпрд╛рд░реА


рдФрд░ рдЗрд╕рд▓рд┐рдП, рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рдПрдХ рдЙрд▓реНрд▓реВ рдФрд░ рджреЛ рдЧреНрд▓реЛрдм рддреИрдпрд╛рд░ рдХрд░реЗрдВред рдПрдХ рдЙрд▓реНрд▓реВ рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ netcoreapp2.1 рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реЛрдЧреАред рд╣рдо рдЧреНрд▓реЛрдм рдХреЗ рд░реВрдк рдореЗрдВ рджреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдБ рдмрдирд╛рдПрдВрдЧреЗ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ netcoreapp2.1 рдкрд░ рд▓рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рджреВрд╕рд░реА рдХреЛ nethydeapp2.0 рдкрд░



рдкреНрд░рддреНрдпреЗрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ, рд╣рдо рдЧреНрд▓реЛрдм рдХреНрд▓рд╛рд╕ рд░рдЦрддреЗ рд╣реИрдВ, рдЬреЛ рд╕рдорд╛рди рдирд╛рдорд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЙрдирдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реЛрдВрдЧреЗ:


рдкрд╣рд▓реА рдлрд╝рд╛рдЗрд▓:


using System; namespace Space { public class Globe { public string GetColor() => "Green"; } } 

рджреВрд╕рд░реА рдлрд╝рд╛рдЗрд▓:


 using System; namespace Space { public class Globe { public string GetColor() => "Blue"; } } 

рдирдВрдмрд░ рдПрдХ рдХреА рдХреЛрд╢рд┐рд╢


рдЪреВрдВрдХрд┐, рд╕рдорд╕реНрдпрд╛ рдХреА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╣рдореЗрдВ рдмрд╛рд╣рд░реА рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рди рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╣рдо рддрджрдиреБрд╕рд╛рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗ, рдЬреИрд╕реЗ рдХрд┐ рд╡реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд┐рд░реНрдл рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓реЗ рд╕рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВ рддрд╛рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ Globe1.dll рдФрд░ Globe2.dll рд╣реИ рдЬреЛ рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдПред рдлрд┐рд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЙрдирдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЬреЛрдбрд╝реЗрдВ:



рдЕрдм рдЧреНрд▓реЛрдм рдХреНрд▓рд╛рд╕ рд╡реЗрд░рд┐рдПрдмрд▓ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ:



рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рд╕реНрддрд░ рдкрд░ рдЖрдИрдбреАрдИ рд╣рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рджреЗрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдордЭрдиреЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЧреНрд▓реЛрдм рдХреНрд▓рд╛рд╕ рдХрд╣рд╛рдВ рд╕реЗ рд▓реЗрдиреА рдЪрд╛рд╣рд┐рдПред


рдкрд╣рд▓реЗ рддреЛ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реНрдерд┐рддрд┐ рдХрд╛рдлреА рд╕рд╛рдорд╛рдиреНрдп рд╣реИ рдФрд░ рд╕реНрдЯреИрдХ рдУрд╡рд░рдлреНрд▓реЛ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рддреИрдпрд╛рд░, рдХрд╛рд╕реНрдЯ, рдЧреНрд░реЗрдирд╛рдЗрдЯ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдЕрднреА рддрдХ .NET рдХреЛрд░ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╛ рдореЗрд░реЗ Google рдиреЗ рдореБрдЭреЗ рдирд┐рд░рд╛рд╢ рдХрд┐рдпрд╛ рд▓реЗрдХрд┐рди рдореИрдВ рд╕реНрдЯреИрдХ рдУрд╡рд░рдлреНрд▓реЛ рдкрд░ рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рдЦреЛрдЬрдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ред рдПрдХрдорд╛рддреНрд░ рд╕рдордЭрджрд╛рд░ рдкреНрд░рдХрд╛рд╢рди рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ Google рдореЗрдВ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд┐рдпрд╛ рдерд╛ рд╡рд╣ 2006 рдореЗрдВ рдерд╛ рдФрд░ .NET рдХреЗ рдХреНрд▓рд╛рд╕рд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЗрд╕реА рддрд░рд╣ рдХреА рд╕реНрдерд┐рддрд┐ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдиреБрдЧреЗрдЯ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рднрдВрдбрд╛рд░ рдореЗрдВ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИред


рдЕрдм рддрдХ, рдмрд╣реБрдд рд╕рд╛рд░реА рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рднреА рд╣реИ:



рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд░рд╣рддрд╛ рд╣реИ рдХрд┐ .NET рдХреЛрд░ рдореЗрдВ рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИред


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


 <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp2.1</TargetFramework> </PropertyGroup> <ItemGroup> <Reference Include="Globe1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"> <HintPath>..\Globe1\bin\Debug\netcoreapp2.1\Globe1.dll</HintPath> <Aliases>Lib1</Aliases> </Reference> <Reference Include="Globe2, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"> <HintPath>..\Globe2\bin\Debug\netstandard2.0\Globe2.dll</HintPath> <Aliases>Lib2</Aliases> </Reference> </ItemGroup> </Project> 

рдЕрдм рдпрд╣ рд╕реАрдЦрдирд╛ рдмрд╛рдХреА рд╣реИ рдХрд┐ рдЗрди рдЙрдкрдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдПред рдкрд╣рд▓реЗ рдмрддрд╛рдП рдЧрдП рдмрд╛рд╣рд░реА рдХреАрд╡рд░реНрдб рд╕реЗ рд╣рдореЗрдВ рдЗрд╕рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреА:


рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓рд┐рдЦрд╛ рд╣реИ:


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

рдпрд╣рд╛рдБ рд╕рдЪреНрдЪрд╛рдИ рдпрд╣ рдирд╣реАрдВ рднреВрд▓рддреА рд╣реИ рдХрд┐ рдмрд╛рд╣рд░реА # C рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдкреНрд░рдмрдВрдзрд┐рдд рдХреЛрдб рд╕реЗ рдмрд╛рд╣рд░реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рдзрд┐ рдХреЛ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдмрд╛рд╣рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдорддреМрд░ рдкрд░ DllImport рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреНрд░рд▓реЗрдЦрди рдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред


рддреЛ, рдЖрдЗрдП рд╣рдорд╛рд░реЗ рдЙрдкрдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ:


 extern alias Lib1; extern alias Lib2; using System; namespace Owl { ... public class SuperOwl { private Lib1::Space.Globe _firstGlobe; private Lib2::Space.Globe _secondGlobe; public void IntegrateGlobe(Lib1::Space.Globe globe) => _firstGlobe = globe; public void IntegrateGlobe(Lib2::Space.Globe globe) => _secondGlobe = globe; ... } } 

рдпрд╣ рдХреЛрдб рдкрд╣рд▓реЗ рд╕реЗ рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдФрд░ рдпрд╣ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдореИрдВ рдЗрд╕реЗ рдереЛрдбрд╝рд╛ рдФрд░ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдпрд╣ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рддрд░реАрдХреЗ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:


 extern alias Lib1; extern alias Lib2; using System; using SpaceOne=Lib1::Space; using SpaceTwo=Lib2::Space; 

рдЕрдм рдЖрдк рд╕рд╛рдорд╛рдиреНрдп рдФрд░ рд╕реНрдкрд╖реНрдЯ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:


 var globe1 = new SpaceOne.Globe() var globe2 = new SpaceTwo.Globe() 

рдХрд╕реМрдЯреА


рдЪрд▓реЛ рд╣рдорд╛рд░реЗ рдЙрд▓реНрд▓реВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВ:



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


тЖТ рдирдореВрдирд╛ рдХреЛрдб GitHub рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ

Source: https://habr.com/ru/post/hi421851/


All Articles