Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π―Π—Π«Πš ΠŸΠ ΠžΠ“Π ΠΠœΠœΠ˜Π ΠžΠ’ΠΠΠ˜Π― Π‘# 2005 И ΠŸΠ›ΠΠ’Π€ΠžΠ ΠœΠ .NET 2.0. 3-Π΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 20

Автор Π­Π½Π΄Ρ€ΡŽ ВроСлсСн

БрСдства Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ проСктирования классов

Π’ Visual Studio 2005 Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ классы Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ (Π² Visual C# 2005 Express Ρ‚Π°ΠΊΠΎΠΉ возмоТности Π½Π΅Ρ‚). Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° Class Designer позволяСт ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ взаимосвязи Ρ‚ΠΈΠΏΠΎΠ² (классов, интСрфСйсов, структур, ΠΏΠ΅Ρ€Π΅Ρ‡Π½Π΅ΠΉ ΠΈ Π΄Π΅Π»Π΅Π³Π°Ρ‚ΠΎΠ²), Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этого инструмСнта ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ, ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ Ρ‡Π»Π΅Π½Ρ‹ Ρ‚ΠΈΠΏΠΎΠ², Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ C#-Ρ„Π°ΠΉΠ»Π΅. Аналогично, Ссли ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΉ C#-Ρ„Π°ΠΉΠ», ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ измСнСния Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½Ρ‹ Π² ΠΎΠΊΠ½Π΅ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ классов.

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с этими возмоТностями Visual Studio 2005 сначала Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ классов. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ, ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² – Ρ‰Π΅Π»Ρ‡ΠΎΠΊ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ View Class Diagram (ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ классов), которая размСщаСтся Π²Π²Π΅Ρ€Ρ…Ρƒ справа Π² ΠΎΠΊΠ½Π΅ Solution Explorer (рис. 2.22).

Рис. 2.22. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ классов

ПослС этого Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ классов, входящих Π² ваш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Π©Π΅Π»Ρ‡ΠΎΠΊ Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ стрСлки Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΡΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ Ρ‡Π»Π΅Π½Ρ‹ Ρ‚ΠΈΠΏΠ° (см. рис. 2.23).

Рис. 2.23. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ классов

Π­Ρ‚Ρƒ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ с двумя Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ возмоТностями Visual Studio 2005 – ΠΎΠΊΠ½ΠΎΠΌ Class Details (активизируСтся ΠΈΠ· мСню Viewβ†’Other Windows) ΠΈ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠΌ Class Designer ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов (активизируСтся ΠΈΠ· мСню Viewβ†’ToolboΡ…). Окно Class Details Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ структуру Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ элСмСнта Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹, Π½ΠΎ ΠΈ позволяСт ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈ Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ Ρ‡Π»Π΅Π½Ρ‹ класса (рис. 2.24).

Рис. 2.24. Окно содСрТимого классов

ПанСль инструмСнтов (рис. 2.25) позволяСт с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… срСдств Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½ΠΎΠ²Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΈΠ· Ρ€Π°Π·Π΄Π΅Π»Π° Class Designer (ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ связи ΠΌΠ΅ΠΆΠ΄Ρƒ этими Ρ‚ΠΈΠΏΠ°ΠΌΠΈ). (Π§Ρ‚ΠΎΠ±Ρ‹ этот Ρ€Π°Π·Π΄Π΅Π» ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов Π±Ρ‹Π» Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌ, ΠΎΠΊΠ½ΠΎ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ классов Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ.) ΠŸΡ€ΠΈ этом IDE автоматичСски создаСт Π½ΠΎΠ²Ρ‹Π΅ опрСдСлСния C#-Ρ‚ΠΈΠΏΠΎΠ² Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅.

Рис. 2.25. Вставка Π½ΠΎΠ²ΠΎΠ³ΠΎ класса с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… срСдств Class Designer

Для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ класс ΠΈΠ· Ρ€Π°Π·Π΄Π΅Π»Π° Class Designer ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов Π² ΠΎΠΊΠ½ΠΎ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ классов, Π’ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ для этого Π½ΠΎΠ²ΠΎΠ³ΠΎ класса имя Car (Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ). Π—Π°Ρ‚Π΅ΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠΊΠ½ΠΎ Class Details, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² класс ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ΅ строковоС ΠΏΠΎΠ»Π΅, Π½Π°Π·Π½Π°Ρ‡ΠΈΠ², Π΅ΠΌΡƒ имя petName (имя Π»ΡŽΠ±ΠΈΠΌΡ†Π°), ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° рис. 2.26. 

Рис. 2.26. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ поля Π² ΠΎΠΊΠ½ΠΎ содСрТимого класса

Если Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Π·Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ C#-класса Car, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΎ.

public class Car {

 // Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π±Π΅Π· нСобходимости

 // Π½Π΅ рСкомСндуСтся, Π½ΠΎ здСсь это сдСлано для простоты

 public string petName;

}

Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² ΠΎΠΊΠ½ΠΎ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ классов Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Π½ΠΎΠ²Ρ‹ΠΉ класс с ΠΈΠΌΠ΅Π½Π΅ΠΌ SportsCar (спортивный Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ). Π—Π°Ρ‚Π΅ΠΌ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Class Designer ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΡƒΠ½ΠΊΡ‚ Inheritance (НаслСдованиС) ΠΈ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π½Π° ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ класса SportsCar. НС отпуская Π»Π΅Π²ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΌΡ‹ΡˆΠΈ, пСрСмСститС ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ класса Car. Если всС Π±Ρ‹Π»ΠΎ сдСлано ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ класс SportsCar, ΡΠ²Π»ΡΡŽΡ‰ΠΈΠΉΡΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΌ класса Car (рис. 2.27).

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚ΡŒ построСниС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² сгСнСрированный класс SportsCar ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ PrintPetName().

public class SportsCar: Car {

 public void PrintPetName() {

  petName = "Π€Ρ€Π΅Π΄Π΄ΠΈ";

  Console.WriteLine("Имя этой ΠΌΠ°ΡˆΠΈΠ½Ρ‹: {0}", petName);

 }

}

Рис. 2.27. Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса ΠΈΠ· класса, ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π³ΠΎΡΡ Π² Π½Π°Π»ΠΈΡ‡ΠΈΠΈ

Π‘Ρ‚Π΅Π½Π΄ тСстирования ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (ΠžΠ’Π’-тСстСр)

Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΈΠΌ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ инструмСнтом Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² Visual Studio 2005 являСтся ΠžΠ’Π’-тСстСр (Object Test Bench – стСнд тСстирования ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²). Π­Ρ‚ΠΎΡ‚ инструмСнт IDE позволяСт быстро ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ экзСмпляр класса ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ² Π΅Π³ΠΎ Ρ‡Π»Π΅Π½ΠΎΠ² Π±Π΅Π· компиляции ΠΈ выполнСния всСго прилоТСния. Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Π² Ρ‚Π΅Ρ… случаях, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, Π½ΠΎ Π² ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… условиях для этого трСбуСтся "ΠΏΡ€ΠΎΠΉΡ‚ΠΈ" Ρ‡Π΅Ρ€Π΅Π· дСсятки строк ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠžΠ’Π’-тСстСром Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π½Π° Ρ‚ΠΈΠΏΠ΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ создаСтС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΊΠ½Π° проСктирования классов. НапримСр, Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π½Π° Ρ‚ΠΈΠΏΠ΅ SportsCar ΠΈ ΠΈΠ· появившСгося контСкстного мСню Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Create Instanceβ†’SportsCar(), ΠŸΠΎΡΠ²ΠΈΡ‚ΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π·Π°Π΄Π°Ρ‚ΡŒ имя вашСй Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ (ΠΈ, Ссли Π½ΡƒΠΆΠ½ΠΎ, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ конструктору Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹). ПослС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ процСсса Π²Ρ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚Π΅ свой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… IDE. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π½Π° ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ PrintPetName() (рис. 2.28).

Рис. 2.28. Π‘Ρ‚Π΅Π½Π΄ тСстирования ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² Visual Studio 2005

Π’Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ сообщСниС "Имя этой ΠΌΠ°ΡˆΠΈΠ½Ρ‹: Π€Ρ€Π΅Π΄Π΄ΠΈ", ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ появится Π² Visual Studio 2005 Π² Ρ€Π°ΠΌΠΊΠ°Ρ… консоли Quick.

Π˜Π½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Π°Ρ справочная систСма

Π’ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ Π΄Π°Π²Π°ΠΉΡ‚Π΅ обсудим Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Visual Studio 2005, которая ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ. Π Π΅Ρ‡ΡŒ здСсь ΠΈΠ΄Π΅Ρ‚ ΠΎΠ± ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ справочной систСмС. ДокумСнтация .NET Framework 2.0 SDK ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠ°, ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½Π° для чтСния ΠΈ содСрТит ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. Π‘ ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ³ΠΎ количСства встроСнных .NET-Ρ‚ΠΈΠΏΠΎΠ² (ΠΈΡ… число измСряСтся тысячами) Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ Π·Π°ΠΊΠ°Ρ‚Π°Ρ‚ΡŒ Ρ€ΡƒΠΊΠ°Π²Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒΡΡ Π² Π³Π»ΡƒΠ±ΠΈΠ½Ρ‹ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. Если ΠΆΠ΅ Π²Ρ‹ ΠΊ этому Π½Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹, Ρ‚ΠΎ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ .NET-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π²Ρ‹ ΠΎΠ±Ρ€Π΅Ρ‡Π΅Π½Ρ‹ Π½Π° бСсконСчныС трудности ΠΈ многочислСнныС разочарования.

Π’ Visual Studio 2005 прСдлагаСтся ΠΎΠΊΠ½ΠΎ Dynamic Help (ДинамичСская справка), ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ (динамичСски!) измСняСт своС содСрТимоС Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ элСмСнт (ΠΎΠΊΠ½ΠΎ, мСню, ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово исходного ΠΊΠΎΠ΄Π° ΠΈ Ρ‚.Π΄.) являСтся Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚. НапримСр, Ссли Π²Ρ‹ помСститС ΠšΡƒΡ€ΡΠΎΡ€ ΠΌΡ‹ΡˆΠΈ Π½Π° класс Console, ΠΎΠΊΠ½ΠΎ Dynamic Help ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ Π½Π°Π±ΠΎΡ€ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² справки, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΊ Ρ‚ΠΈΠΏΡƒ System.Console.

Π’Π°ΠΊΠΆΠ΅ слСдуСт Π·Π½Π°Ρ‚ΡŒ ΠΎΠ± ΠΎΠ΄Π½ΠΎΠΌ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎΠΌ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ .NET Framework 2.0 SDK. Π’ Ρ€Π°Π·Π΄Π΅Π»Π΅ .NET Developmentβ†’NET Framework SDKβ†’Class Library Reference Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ ΠΏΠΎΠ»Π½Ρ‹Π΅ описания всСх пространств ΠΈΠΌΠ΅Π½ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Π±Π°Π·ΠΎΠ²Ρ‹Ρ… классов .NET (рис. 2.29).

Рис. 2.29. Π‘ΠΏΡ€Π°Π²ΠΊΠ° ΠΏΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Π±Π°Π·ΠΎΠ²Ρ‹Ρ… классов .NET

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ "ΡƒΠ·Π΅Π»" здСсь опрСдСляСт Π½Π°Π±ΠΎΡ€ Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΠΎΠ³ΠΎ пространства ΠΈΠΌΠ΅Π½, Ρ‡Π»Π΅Π½Ρ‹ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‡Π»Π΅Π½Π°. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΡ€ΠΈ просмотрС страницы ΠΏΠΎΠΌΠΎΡ‰ΠΈ для Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° сообщаСтся имя ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° ΠΈ пространства ΠΈΠΌΠ΅Π½, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТат рассматриваСмый Ρ‚ΠΈΠΏ (ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ информация размСщаСтся Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части страницы). Π― ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡŽ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ Π²Ρ‹ Π΄ΠΎΠ±Π΅Ρ€Π΅Ρ‚Π΅ΡΡŒ Π΄ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΠΈ ΠΎΡ‡Π΅Π½ΡŒ Π³Π»ΡƒΠ±ΠΎΠΊΠΎ спрятанных ΡƒΠ·Π»ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π²Π°ΠΆΠ½Ρ‹Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния ΠΎ рассматриваСмых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ….

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ .NET-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ

Π’ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ вашС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ряд инструмСнтов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ .NET, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ возмоТности Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ Π²Π°ΠΌΠΈ IDE. МногиС ΠΈΠ· упомянутых здСсь инструмСнтов ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ исходный ΠΊΠΎΠ΄, ΠΈ всС ΠΎΠ½ΠΈ бСсплатны. Π’ этой ΠΊΠ½ΠΈΠ³Π΅ Π½Π΅Ρ‚ мСста для ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ³ΠΎ описания этих ΡƒΡ‚ΠΈΠ»ΠΈΡ‚, Π½ΠΎ Π² Ρ‚Π°Π±Π». 2.5 прСдставлСны описания инструмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я ΡΡ‡ΠΈΡ‚Π°ΡŽ Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ URL-адрСса, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ.

Π’Π°Π±Π»ΠΈΡ†Π° 2.5. ΠŸΠΎΠ΄Π±ΠΎΡ€ΠΊΠ° срСдств Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ .NET-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ

НазваниС ОписаниС URL-адрСс FxCop Π­Ρ‚ΠΎΡ‚ инструмСнт Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² разряд ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… для любого Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° .NET-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, заинтСрСсованного Π² ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΠΈ своих ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. FxCop ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ любой ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ .NET Π½Π° соотвСтствиС ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ трСбованиям ΠΈ рСкомСндациям Microsoft .NET http://www.gotdotnet.com/tΠ΅Π°m/fxcop Lab Roeder's Refleсtor для .NET Π­Ρ‚ΠΎΡ‚ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ дСкомпилятор/Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² NET позволяСт ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ любого .NET-Ρ‚ΠΈΠΏΠ°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅Π³ΠΎ CIL, C#, Object Pascal .NET (Delphi) ΠΈΠ»ΠΈ Visual Basic .NET http://www.aisto.сom/roeder/dotfnet NAnt NAnt являСтся .NET-эквивалСнтом Ant – популярного Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ срСдства создания ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Java. NAnt позволяСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Π΅ сцСнарии ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ синтаксис XML http://sourceforge.net/projects/nant NDoc C ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ NDoc ΠΌΠΎΠΆΠ½ΠΎ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° C# (ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ² .NET) Π² самых популярных Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ… (*.chm MSDN, XML, HTML, JavΠ°doc ΠΈ LaTeX) http://sourseforge.net/projects/ndoc NUnit NUnit являСтся.NET-эквивалСнтом инструмСнта JUnit, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ для тСстирования Java-ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ NUnit ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ процСсс ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ управляСмого ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° http://www.nunit.org Vil ВоспринимайтС Vil ΠΊΠ°ΠΊ "ΡΡ‚Π°Ρ€ΡˆΠ΅Π³ΠΎ Π±Ρ€Π°Ρ‚Π°" Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° .NET. Π­Ρ‚ΠΎΡ‚ инструмСнт ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ .NET ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ ряд Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ, структурированной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΈ Ρ‚.Π΄. http://www.Ibot.com

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ возмоТности FxCop сСйчас ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π² Visual Studio 2005. Π§Ρ‚ΠΎΠ±Ρ‹ Π² этом ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ Ρ‰Π΅Π»Ρ‡ΠΎΠΊ Π½Π° ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Properties (Бвойства) Π² ΠΎΠΊΠ½Π΅ Solution Explorer ΠΈ Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Code Analysis (Анализ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°).