ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

ДСструкторы ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

Π Π΅Ρ„Π΅Ρ€Π°Ρ‚ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Как ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅, имя_дСструктора — это имя класса с ΠΏΡ€Π΅Ρ„иксом ~ (Ρ‚ΠΈΠ»ΡŒΠ΄Π°). Π”Ρ€ΡƒΠ³ΠΈΡ… ΠΈΠΌΠ΅Π½ Ρƒ Π΄Π΅ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ΠΎΠ² Π½Π΅ Π±Ρ‹Π²Π°Π΅Ρ‚. ДСструктор Π² ΠΊΠ»Π°ΡΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρƒ Π΄Π΅ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€Π° Π½Π΅Ρ‚. НСт ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния. Π’Π΅Π»ΠΎ дСструктора — это Π±Π»ΠΎΠΊ Π»ΠΈΠ±ΠΎ пустой ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅ΠΌΡ‹ΠΉ символом Ρ‚ΠΎΡ‡ΠΊΠ° с Π·Π°ΠΏΡΡ‚ΠΎΠΉ. ΠŸΡƒΡΡ‚ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Ρ‚Π΅Π»Π° дСструктора ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ случаС, Ссли дСструктор… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ДСструкторы ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ДСструктор — это Ρ‡Π»Π΅Π½ класса, Π³Π΄Π΅ Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ всС дСйствия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ для уничтоТСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° класса. ОбъявлСниС дСструктора:

externopt ~имя_класса () Ρ‚Π΅Π»ΠΎ_дСструктора

Как ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅, имя_дСструктора — это имя класса с ΠΏΡ€Π΅Ρ„иксом ~ (Ρ‚ΠΈΠ»ΡŒΠ΄Π°). Π”Ρ€ΡƒΠ³ΠΈΡ… ΠΈΠΌΠ΅Π½ Ρƒ Π΄Π΅ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ΠΎΠ² Π½Π΅ Π±Ρ‹Π²Π°Π΅Ρ‚. ДСструктор Π² ΠΊΠ»Π°ΡΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρƒ Π΄Π΅ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€Π° Π½Π΅Ρ‚. НСт ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния. Π’Π΅Π»ΠΎ дСструктора — это Π±Π»ΠΎΠΊ Π»ΠΈΠ±ΠΎ пустой ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅ΠΌΡ‹ΠΉ символом Ρ‚ΠΎΡ‡ΠΊΠ° с Π·Π°ΠΏΡΡ‚ΠΎΠΉ. ΠŸΡƒΡΡ‚ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Ρ‚Π΅Π»Π° дСструктора ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ случаС, Ссли дСструктор снабТСн ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ extern. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Ρ‚Π΅Π»ΠΎ дСструктора — это Π±Π»ΠΎΠΊ, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для уничтоТСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ Ρ‚Π΅Π»ΠΎ дСструктора Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Ρ‚Π΅Π»Ρƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² с Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΈΠΏΠ° void.

ДСструктор выполняСтся послС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса пСрСстаСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. Π’Ρ‹Π·ΠΎΠ² дСструктора выполняСтся автоматичСски. ΠœΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ‹Π·ΠΎΠ²Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½. Π―Π²Π½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ дСструктор ΠΈΠ· ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ нСльзя.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ класс Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ дСструктора. НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ явно дСструктор Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ся, Π΅Π³ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (ll08.cs).

// ll08.cs дСструктор using System; class, А {.

~А ().

{

Console.WriteLine («Destructor!»);

} }

class Test.

{

static void MainQ.

{

A b = new A ();

b = null;

}

Destructor!

Π’ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ .NET дСструкторы Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Finalize (). Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ Ρ„ΠΈΠ½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠΌ, подмСняСт Π² ΡΠ±ΠΎΡ€ΠΊΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π² ΠΊΠΎΠ΄Π΅ дСструктор. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΡ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ языка Π‘#, ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π½Π° ΡΡ‚ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Π½ΠΎ ΡΡ‚ΠΎ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ссли ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ IL.

ДСструктор Π½ΡƒΠΆΠ΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ классС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ для создаваСмого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° выдСлСния нСуправляСмых рСсурсов. НапримСр, ΠΊΠΎΠ³Π΄Π° конструктор ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° связываСт создаваСмый ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ с Π΄Π΅ΡΠΊΡ€ΠΈΠΏΡ‚ΠΎΡ€ΠΎΠΌ Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ устанавливаСт сСтСвоС соСдинСниС. Когда ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΈΠ· ΠΎΠ±Π»Π°ΡΡ‚ΠΈ опрСдСлСния, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ дСйствия ΠΏΠΎ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡŽ дСскриптора Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ сСтСвого соСдинСния. ИмСнно Ρ‚Π°ΠΊΠΈΠ΅ дСйствия Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ дСструктор.

Π’ Π²Π΅Ρ€ΡΠΈΠΈ C# 7.0 Π²Π²Π΅Π΄Π΅Π½Π° Π΅Ρ‰Π΅ ΠΎΠ΄Π½Π° синтаксичСская конструкция, относящихся ΠΊ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²: дСконструктор. Π—Π΄Π΅ΡΡŒ ΠΎ Π΄Π΅ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€Π΅ упомянСм Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅Π΄ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ нСльзя ΠΏΡƒΡ‚Π°Ρ‚ΡŒ с Π΄Π΅ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ΠΎΠΌ. ДСконструктор ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π³Π»Π°Π²Π΅, «Π‘рСдства взаимодСйствия с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ». А ΡΠ΅ΠΉΡ‡Π°Ρ остановимся Π½Π° ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ значСния ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ Ρ‡Π»Π΅Π½Π°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… (полям ΠΈ ΡΠ²ΠΎΠΉΡΡ‚Π²Π°ΠΌ) нСпосрСдствСнно ΠΏΡ€ΠΈ создании ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π€ΠΎΡ€ΠΌΠ°Ρ‚ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°:

{имя_Ρ‡Π»Π΅Π½Π° = Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, имя_Ρ‡Π»Π΅Π½Π° = Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅}.

ОбъявлСниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° выглядит Ρ‚Π°ΠΊ:

new Имя_класса (список_Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²)0t ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€_ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

Как ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½ΠΎ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅, список Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² вмСстС с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌΠΈ Π΅Π³ΠΎ скобками ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡƒΡ‰Π΅Π½. Но ΡΡ‚ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΡΠ»ΡƒΡ‡Π°Π΅, ΠΊΠΎΠ³Π΄Π° Π² ΠΊΠ»Π°ΡΡΠ΅ присутствуСт конструктор умолчания (конструктор Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈΠ»ΠΈ с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ значСниями Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²).

Для примСнСния ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π΅Ρ‚ нСобходимости Π²Π½ΠΎΡΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ измСнСния ΠΈΠ»ΠΈ дополнСния Π² Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ†ΠΈΡŽ класса.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ примСнСния ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²:

// 1109 — Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

using System;

class CalendarDate.

{

public string Dow = «Π‘Ρ€Π΅Π΄Π°»; // Π”Π΅Π½ΡŒ Π½Π΅Π΄Π΅Π»ΠΈ public string Mounth; // НазваниС мСсяца public uint Date; // Π”Π°Ρ‚Π° (число Π² ΠΌΠ΅ΡΡΡ†Π΅)

class Program.

{.

static void MainQ.

{

CalendarDate date = new CalendarDate ().

{

Mounth = «Π”Π΅ΠΊΠ°Π±Ρ€ΡŒ» ,.

Date = 12,.

Dow = «Π§Π΅Ρ‚Π²Π΅Ρ€Π³» .

};

Console.WriteLine («date.Mounth = «+ date. Mounth);

Console.WriteLine («date.Date = «+ date. Date);

Console.WriteLine («date.Dow = «+ date. Dow);

CalendarDate nowDate = new CalendarDate.

{

Date = 11,.

Mounth = date.Mounth.

};

Console.WriteLine («nowDate.Mounth = «+ nowDate. Mounth);

Console.WriteLine («nowDate.Date = «+ nowDate. Date);

Console.WriteLine («nowDate.Dow = «+ nowDate. Dow);

} }

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

date.Mounth = Π”Π΅ΠΊΠ°Π±Ρ€ΡŒ date. Date = 12 date. Dow = Π§Π΅Ρ‚Π²Π΅Ρ€Π³ nowDate. Mounth = Π”Π΅ΠΊΠ°Π±Ρ€ΡŒ nowDate. Date = 11 nowDate. Dow = Π‘Ρ€Π΅Π΄Π° Π’ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ся Π΄Π²Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° класса CalendarDate. Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΈΠ· Π½ΠΈΡ… значСния всСх ΠΏΠΎΠ»Π΅ΠΉ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Для Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ поля Dow («Π‘Ρ€Π΅Π΄Π°») Π²Ρ‹Π±Ρ€Π°Π½ΠΎ ΠΈΠ· Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ†ΠΈΠΈ этого поля Π² ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½ΠΈΠΈ класса.

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ компилятор автоматичСски Π΄ΠΎΠ±Π°Π²ΠΈΠ» конструктор Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π² ΠΊΠ»Π°ΡΡ CalendarDate. Π”Ρ€ΡƒΠ³ΠΈΡ… конструкторов Π² ΡΡ‚ΠΎΠΌ классС Π½Π΅Ρ‚. ΠŸΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ Π² ΠΊΠ»Π°ΡΡΠ΅ конструкторов с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ список Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² конструктора. Π‘ ΠΈΡ… ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ значСния ΠΏΠΎΠ»Π΅ΠΉ, ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π² ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

ΠŸΡ€ΠΈ знакомствС с ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠΌ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ вопрос ΠΎΠ± ΠΈΡ… Π½Π΅ΠΎΠ±Ρ…одимости. По ΡΡƒΡ‚ΠΈ, ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ ΠΊ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€Ρƒ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΠΈΠ»ΠΈ явным присваиваниСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ Ρ‡Π»Π΅Π½Π°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π’ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΏΠΎ C# отмСчаСтся, Ρ‡Ρ‚ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΡ€ΠΈ использовании LINQ-Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ.

ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅ вопросы ΠΈ Π·Π°Π΄Π°Π½ΠΈΡ

  • 1. НазовитС ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ класса, примСняСмыС ΠΏΡ€ΠΈ отсутствии наслСдования.
  • 2. НазовитС разновидности Ρ‡Π»Π΅Π½ΠΎΠ² класса.
  • 3. КакиС элСмСнты ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π² ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½ΠΈΠΈ нСстатичСского поля?
  • 4. Когда выполняСтся инициализация нСстатичСских ΠΏΠΎΠ»Π΅ΠΉ?
  • 5. Каков статус доступа нСстатичСского поля ΠΏΡ€ΠΈ отсутствии Π² Π΅Π³ΠΎ объявлСнии ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² доступа?
  • 6. МоТно Π»ΠΈ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ статичСскоС ΠΏΠΎΠ»Π΅ с Ρ‚ΠΈΠΏΠΎΠΌ класса, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΎΠ½ΠΎ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚?
  • 7. Π’ ΠΊΠ°ΠΊΠΎΠΌ случаС Π² ΠΊΠ»Π°ΡΡΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½Ρ‹Π΅ статичСский ΠΈ Π½Π΅ΡΡ‚атичСский ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹?
  • 8. Π’ ΠΊΠ°ΠΊΠΈΡ… случаях Ρ‚Π΅Π»ΠΎΠΌ нСстатичСского ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ пустой ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€?
  • 9. Π’ ΠΊΠ°ΠΊΠΎΠΌ случаС конструктор умолчания (конструктор Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²) создаСтся автоматичСски?
  • 10. НазовитС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ примСнСния ссылки this.
  • 11. Π’ ΠΊΠ°ΠΊΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… ссылка this отсутствуСт?
  • 12. ΠžΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ объявлСния нСстатичСского конструктора.
  • 13. ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ конструктора.
  • 14. ΠžΠ±ΡŠΡΡΠ½ΠΈΡ‚Π΅ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° конструктора.
  • 15. ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅ Π²ΠΈΠ΄Ρ‹ конструкторов.
  • 16. Каков статус доступа Ρƒ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€Π° умолчания, встраиваСмого Π² ΠΊΠ»Π°ΡΡ автоматичСски?
  • 17. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ конструктор копирования?
  • 18. Каким ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ конструктор ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ конструктору своСго класса?
  • 19. ΠžΠ±ΡŠΡΡΠ½ΠΈΡ‚Π΅ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ дСструктора.
  • 20. Бколько дСструкторов ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π² ΠΎΠ΄Π½ΠΎΠΌ классС?
  • 21. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ„ΠΈΠ½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€?
  • 22. КакиС Ρ‡Π»Π΅Π½Ρ‹ класса ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²?
ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ