ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄. ΠΡΠΎΠ΅ΠΊΡ CSharpCarClient ΡΠ°Π·ΠΌΠ΅ΡΡΠ½ Π² ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΌ Π³Π»Π°Π²Π΅ 11.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ-ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π² Visual Basic .NET
Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ·ΡΠΊΠΎΠ²ΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ .NET, ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π΄ΡΡΠ³ΠΎΠ΅ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (VbNetCarClient) Π½Π° ΡΡΠΎΡ ΡΠ°Π· Ρ ΠΏΠΎΠΌΠΎΡΡΡ Visual Basic .NET (ΡΠΈΡ. 11.10). Π‘ΠΎΠ·Π΄Π°Π² ΠΏΡΠΎΠ΅ΠΊΡ, ΡΠΊΠ°ΠΆΠΈΡΠ΅ ΡΡΡΠ»ΠΊΡ Π½Π° CarLibrary.dll Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Add Reference.
Π ΠΈΡ. 11.10. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Visual Basic .NET
ΠΠ°ΠΊ ΠΈ Π² C#, Π² Visual Basic .NET ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΊΠ°Π·Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ² ΠΈΠΌΠ΅Π½, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΡΠ°ΠΉΠ»Π΅. ΠΠΎ Π² Visual Basic .NET Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ Imports, Π° Π½Π΅ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ using, ΠΊΠ°ΠΊ Π² C#. Π‘ ΡΡΠ΅ΡΠΎΠΌ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Imports Π² ΡΠ°ΠΉΠ» ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Module1.vb.
Imports CarLibrary
Module Module1
Sub ΠΠ°in()
End Sub
End Module
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄ Main() ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΡΠΈΠΏΠ° Module Visual Basic .NET (ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ΅Π³ΠΎ Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ *.netmodule ΠΌΠ½ΠΎΠ³ΠΎΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡΠ½ΡΡ Π±Π»ΠΎΠΊΠΎΠ²). Π Visual Basic .NET Module ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΡΠΎ Π΄Π»Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ. Π§ΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ½ΡΡΠ½ΡΠΌ, Π²ΠΎΡ Π°Π½Π°Π»ΠΎΠ³ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π² C#.
// 'Module' Π² VB .NET - ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ,
// ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ.
public sealed class Module1 {
public static void Main() {
}
}
Π’Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°ΡΠ΅, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΠΏΡ MiniVan ΠΈ SportsCar Π² ΡΠ°ΠΌΠΊΠ°Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° Visual Basic .NET, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ Main() ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ Π½ΠΈΠΆΠ΅.
Sub Main()
Console.WriteLine("***** ΠΠ°Π±Π°Π²Ρ Ρ Visual Basic .NET *****")
Dim myMiniVan As New MiniVan()
myMiniVan.TurboBoost()
Dim mySportsCar As New SportsCar()
mySportsCar.TurboBoost()
Console.ReadLine()
End Sub
ΠΠΎΡΠ»Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²Ρ ΡΠ½ΠΎΠ²Π° ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ Π½Π°Π±ΠΎΡ ΠΎΠΊΠΎΠ½ Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ.
ΠΠ΅ΠΆΡΡΠ·ΡΠΊΠΎΠ²ΠΎΠ΅ ΠΏΠ΅ΡΠ΅ΠΊΡΠ΅ΡΡΠ½ΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅
ΠΠ΅ΡΡΠΌΠ° ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ°ΡΠ΅Π»ΡΠ½ΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ .NET ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠ΅ΠΆΡΡΠ·ΡΠΊΠΎΠ²ΠΎΠ΅ ΠΏΠ΅ΡΠ΅ΠΊΡΠ΅ΡΡΠ½ΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅. ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π½ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ Visual Basic .NET, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΌ ΠΎΡ SportsCar (Π½Π°ΠΏΠΎΠΌΠ½ΠΈΠΌ, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π±ΡΠ» ΡΠΎΠ·Π΄Π°Π½ Π² C#). Π‘Π½Π°ΡΠ°Π»Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΠ°ΠΉΠ» Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ PerformanceCar.vb Π² ΠΈΠΌΠ΅ΡΡΠ΅Π΅ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Visual Basic .NET (Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΠ±ΠΎΡΠ° ProjectβAdd Class ΠΈΠ· ΠΌΠ΅Π½Ρ). ΠΠ±Π½ΠΎΠ²ΠΈΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° ΠΏΡΡΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΈΠ· SportsCar, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ Inherits. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ TurboBoost(), ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ Overrides.
Imports CarLibrary
' ΠΡΠΎΡ VB-ΡΠΈΠΏ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΌ C#-ΡΠΈΠΏΠ° SportsCar.
Public Class PerformanceCar Inherits SportsCar
Public Overrides Sub TurboBoost()
Console.WriteLine("ΠΡ Π½ΡΠ»Ρ Π΄ΠΎ 100 Π·Π° ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ 4,8 ΡΠ΅ΠΊΡΠ½Π΄Ρβ¦")
End Sub
End Class
Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠ°Π±ΠΎΡΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΊΠ»Π°ΡΡΠ°, ΠΎΠ±Π½ΠΎΠ²ΠΈΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ Main() ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ°ΠΊ.
Sub Main()
β¦
Dim dreamCar As New PerformanceCar()
' ΠΠ°ΡΠ»Π΅Π΄ΡΠ΅ΠΌΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ.
dreamCar.PetName = "Hank"
dreamCar.TurboBoost()
Console.ReadLine()
End Sub
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ dreamCar ΡΠΏΠΎΡΠΎΠ±Π΅Π½ Π²ΡΠ·ΡΠ²Π°ΡΡ Π»ΡΠ±ΡΠ΅ ΠΎΡΠΊΡΡΡΡΠ΅ ΡΠ»Π΅Π½Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ PetName) ΠΏΠΎ ΡΠ΅ΠΏΠΎΡΠΊΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ, Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π½Π° ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π΄ΡΡΠ³ΠΎΠΌ ΡΠ·ΡΠΊΠ΅ ΠΈ Π² Π΄ΡΡΠ³ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄. ΠΡΠΎΠ΅ΠΊΡ VbNetCarClient ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ Π² ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΌ ΠΠ»Π°Π²Π΅ 11.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡΠ½ΡΡ Π±Π»ΠΎΠΊΠΎΠ²
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π½Π°ΡΡΠΈΠ»ΠΈΡΡ ΡΡΡΠΎΠΈΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ΄Π½ΠΎΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡΠ½ΡΠ΅ Π±Π»ΠΎΠΊΠΈ, ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡΠ½ΡΡ Π±Π»ΠΎΠΊΠΎΠ², ΠΠ°ΠΏΠΎΠΌΠ½ΠΈΠΌ, ΡΡΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡΠ½ΡΠΉ Π±Π»ΠΎΠΊ β ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ Π½Π°Π±ΠΎΡ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, ΠΈΠ½ΡΡΠ°Π»Π»ΠΈΡΡΠ΅ΠΌΡΡ ΠΊΠ°ΠΊ ΡΠ΅Π»ΡΠ½Π°Ρ Π΅Π΄ΠΈΠ½ΠΈΡΠ° ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΠΌΡΡ ΠΏΠΎ Π΅Π΄ΠΈΠ½ΠΎΠΌΡ Π½ΠΎΠΌΠ΅ΡΡ Π²Π΅ΡΡΠΈΠΈ. ΠΠ° ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ Π² Visual Studio 2005 Π½Π΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π»ΡΡ ΡΠ°Π±Π»ΠΎΠ½ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π΄Π»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡΠ½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° C#. ΠΠΎΡΡΠΎΠΌΡ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π²Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ (csc.exe).
ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΌΡ Ρ Π²Π°ΠΌΠΈ ΠΏΠΎΡΡΡΠΎΠΈΠΌ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡΠ½ΡΠΉ Π±Π»ΠΎΠΊ Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ AirVehicles (Π°Π²ΠΈΠ°ΡΡΠ°Π½ΡΠΏΠΎΡΡ). ΠΠ΅ΡΠ²ΠΈΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ (airvehicles.dll) Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠΈΠΏ ΠΊΠ»Π°ΡΡΠ° Helicopter (Π²Π΅ΡΡΠΎΠ»Π΅Ρ). Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡ (ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉΡΡ Π² airvehicles.dll) ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈΠ·ΠΈΡΡΠ΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» *.netmodule Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ufo.netmodule, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΡΠΈΠΏ ΠΊΠ»Π°ΡΡΠ°, Π½Π°Π·ΡΠ²Π°ΡΡΠΈΠΉΡΡ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ ΠΆΠ΅, Ufo (ΠΠΠ). ΠΡΠΈ Π΄Π²Π° ΡΠΈΠΏΠ° ΠΊΠ»Π°ΡΡΠ° ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ Π΄Π²ΠΎΠΈΡΠ½ΡΡ ΡΠ°ΠΉΠ»Π°Ρ , Π½ΠΎ ΠΌΡ ΡΠ³ΡΡΠΏΠΏΠΈΡΡΠ΅ΠΌ ΠΈΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΈΠΌΠ΅Π½, Π½Π°Π·Π²Π°Π½Π½ΠΎΠΌ AirVehicles. ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΎΠ±Π° ΠΊΠ»Π°ΡΡΠ° Π±ΡΠ΄ΡΡ ΡΠΎΠ·Π΄Π°Π½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ C# (Ρ ΠΎΡΡ Π²Ρ, Π΅ΡΠ»ΠΈ Ρ ΠΎΡΠΈΡΠ΅, ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈ ΡΠ°Π·Π½ΡΠ΅ ΡΠ·ΡΠΊΠΈ).
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΠ»ΠΎΠΊΠ½ΠΎΡ) ΠΈ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° Ufo, ΡΠΎΡ ΡΠ°Π½ΠΈΠ² Π·Π°ΡΠ΅ΠΌ Π΅Π³ΠΎ Π² ΡΠ°ΠΉΠ»Π΅ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ufo.cs.
using System;
namespace AirVehicles {
public class Ufo {
public void AbductHuman() {
Console.WriteLine("Π‘ΠΎΠΏΡΠΎΡΠΈΠ²Π»Π΅Π½ΠΈΠ΅ Π±Π΅ΡΠΏΠΎΠ»Π΅Π·Π½ΠΎ");
}
}
}
Π§ΡΠΎΠ±Ρ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΠΊΠ»Π°ΡΡ Π² .NET-ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² ΠΏΠ°ΠΏΠΊΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ufo.cs. ΠΈ Π²Π²Π΅Π΄ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ C# (ΠΎΠΏΡΠΈΡ module ΡΠ»Π°Π³Π° /target "ΠΈΠ½ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ" csc.exe ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΡΡΡΠΎΠΈΡΡ ΡΠ°ΠΉΠ» *.netmodule, Π° Π½Π΅ *.dll ΠΈΠ»ΠΈ *.exe).
csc.exe /t:module ufo.cs
ΠΡΠ»ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ Π·Π°Π³Π»ΡΠ½ΡΡΡ Π² ΠΏΠ°ΠΏΠΊΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΡΠ°ΠΉΠ» ufo.cs, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ufo.netmodule (ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅!). ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ helicopter.cs, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ°.
using System;
namespace AirVehicles {
public class Helicopter {
public void TakeOff() {
Console.WriteLine("ΠΠ΅ΡΡΠΎΠ»Π΅Ρ Π½Π° Π²Π·Π»Π΅Ρ!");
}
}
}
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ airvehicles.dll Π±ΡΠ»ΠΎ Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½ΠΎ Π΄Π»Ρ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ Π½Π°ΡΠ΅Π³ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡΠ½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°, Π²Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ helicopter.cs Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠΏΡΠΈΠΉ /t:library ΠΈ /out:. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π·Π°ΠΏΠΈΡΡ ΠΎ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ ufo.netmodule Π² ΠΌΠ°Π½ΠΈΡΠ΅ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡΠ½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ°ΠΊΠΆΠ΅ ΡΠΊΠ°Π·Π°ΡΡ ΡΠ»Π°Π³ /addmodule. ΠΡΠ΅ ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°.
csc /t:library /addmodule:ufo.netmodule /out:airvehicles.dll helicopter.cs
Π ΡΡΠΎΠΌΡ ΠΌΠΎΠΌΠ΅Π½ΡΡ Π²Π°Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ airvehicles.dll, Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠΎΡΠΈΡΠ½ΡΠΉ ufo.netmodule.
ΠΠ½Π°Π»ΠΈΠ· ΡΠ°ΠΉΠ»Π° ufo.netmodule
Π’Π΅ΠΏΠ΅ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ildasm.exe ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ufo.netmodule. ΠΡ ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ *.netmodule ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡ ΡΡΠΎΠ²Π½Ρ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π΅Π³ΠΎ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΡΠ΅Π»ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ° Π²ΡΠ΅Ρ Π²Π½Π΅ΡΠ½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡΠ½ΡΡ Π±Π»ΠΎΠΊΠΎΠ², Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ Π΅ΡΡΡ ΡΡΡΠ»ΠΊΠΈ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΌ ΠΊΠΎΠ΄Π΅. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΊΠ»Π°ΡΡ Ufo, ΠΏΠΎ ΡΡΡΠΈ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π²ΡΠ·ΠΎΠ² Console.WriteLine(), Π²Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅.
.assembly extern mscorlib {
.publickeytoken = (B7 7A 5C 56 19 34 E0 89)
.ver 2:0:0:0
}
.module ufo.netmodule
ΠΠ½Π°Π»ΠΈΠ· ΡΠ°ΠΉΠ»Π° airvehicles.dll
Π’Π΅ΠΏΠ΅ΡΡ Π² ΠΏΠΎΠΌΠΎΡΡΡ ildasm.exe ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ airvehicles.dll ΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΡΠ΅ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡ ΡΡΠΎΠ²Π½Ρ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡΠ½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°. ΠΡ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ Π»Π΅ΠΊΡΠ΅ΠΌΡ.file Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΡΡΡ Π°ΡΡΠΎΡΠΈΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡΠ½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° (Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ufo.netmodule). ΠΠ΅ΠΊΡΠ΅ΠΌΡ.class extern ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΈΠΌΠ΅Π½ Π²Π½Π΅ΡΠ½ΠΈΡ ΡΠΈΠΏΠΎΠ² ΠΈΠ· Π²ΡΠΎΡΠΈΡΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ (Ufo), Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅ΡΡΡΡ ΡΡΡΠ»ΠΊΠΈ.
.assembly extern mscorlib {
.publickeytoken = (B7 7A 5C 56 19 34 E0 89)
.ver 2:0:0:0
}
.assembly airvehiΡles {
β¦
.hash algorithm 0x00008004
.ver 0:0:0:0
}
.file ufΠΎ.netmodule
β¦
.class extern public AirVehicles.Ufo {
.file ufo.netmodule
.class 0x02000002
}
.module airvehicles.dll
Π‘Π½ΠΎΠ²Π° ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠ½Π΅ΠΌ, ΡΡΠΎ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡΠ½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ, ΡΠ²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΌ airvehicles.dll ΠΈ ufo.netmodule. Π£ΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π΄Π²Π° Π±ΠΈΠ½Π°ΡΠ½ΡΡ ΡΠ°ΠΉΠ»Π° Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ, Π±ΠΎΠ»ΡΡΠ΅ΠΌ *.dll.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡΠ½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡΠ½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π·Π°Π±ΠΎΡΠΈΡΡ ΡΠΎ, ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡΠ½ΡΠΉ Π±Π»ΠΎΠΊ, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ½ΠΈ ΡΡΡΠ»Π°ΡΡΡΡ, ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ. Π§ΡΠΎΠ±Ρ ΠΏΠΎΡΡΠ½ΠΈΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΌΡ ΠΏΠΎΡΡΡΠΎΠΈΠΌ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅-ΠΊΠ»ΠΈΠ΅Π½Ρ Visual Basic .NET Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» Client.vb, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ Π½ΠΈΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅. Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ Π΅Π³ΠΎ Π² ΡΠ°ΠΌ ΠΌΠ΅ΡΡΠ΅, Π³Π΄Π΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π²Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡΠ½ΡΠΉ Π±Π»ΠΎΠΊ.
Imports AirVehicles
Module Module1
Sub Main()
Dim h As New AirVehicles.Helicopter()
h.Takeoff()
' ΠΡΠΎ Π·Π°Π³ΡΡΠ·ΠΈΡ *.netmodule ΠΏΠΎ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ.
Dim u As New UFO()
u.AbductHuman()
Console.ReadLine()
End Sub
End Module