ΠΠΎΠΌΠΈΠΌΠΎ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² Π΄ΠΎΡΡΡΠΏΠ° public, private ΠΈ protected, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π²ΡΠΈΡ ΡΡ Π² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ ΡΠ°Π½Π΅Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, Π² C# ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π΄ΠΎΡΡΡΠΏΠ° internal. ΠΡΠΎΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ ΡΠ»Π΅Π½Π° Π²ΠΎ Π²ΡΠ΅Ρ ΡΠ°ΠΉΠ»Π°Ρ ΡΠ±ΠΎΡΠΊΠΈ ΠΈ Π΅Π³ΠΎ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ ΡΠ±ΠΎΡΠΊΠΈ. ΠΡΠΎΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, ΠΎ ΡΠ»Π΅Π½Π΅, ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½Π½ΠΎΠΌ ΠΊΠ°ΠΊ internal, ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ°ΠΌΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅, Π½ΠΎ Π½Π΅ Π·Π° Π΅Π΅ ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ.ΠΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π΄ΠΎΡΡΡΠΏΠ° internal ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ².
ΠΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π΄ΠΎΡΡΡΠΏΠ° internal ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΊ ΠΊΠ»Π°ΡΡΠ°ΠΌ ΠΈ ΠΈΡ ΡΠ»Π΅Π½Π°ΠΌ, Π° ΡΠ°ΠΊΠΆΠ΅ΠΊ ΡΡΡΡΠΊΡΡΡΠ°ΠΌ ΠΈ ΡΠ»Π΅Π½Π°ΠΌ ΡΡΡΡΠΊΡΡΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ internal ΡΠ°Π·ΡΠ΅ΡΠ°Π΅ΡΡΡΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² ΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ.
ΠΠ· ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² protected ΠΈ internal ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠΏΠ°ΡΠ΅Π½Π½ΡΠΉ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π΄ΠΎΡΡΡΠΏΠ° protected internal. Π£ΡΠΎΠ²Π΅Π½Ρ Π΄ΠΎΡΡΡΠΏΠ° protected internal ΠΌΠΎΠΆΠ΅ΡΠ±ΡΡΡ Π·Π°Π΄Π°Π½ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠ»Π΅Π½ΠΎΠ² ΠΊΠ»Π°ΡΡΠ°. Π§Π»Π΅Π½, ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΠΉ ΠΊΠ°ΠΊ protected internal,Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π»ΠΈΡΡ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΡΠ±ΠΎΡΠΊΠΈ ΠΈΠ»ΠΈ Π΄Π»Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΡ ΡΠΈΠΏΠΎΠ².
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° Π΄ΠΎΡΡΡΠΏΠ° internal.// ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π΄ΠΎΡΡΡΠΏΠ° internal.using System;class InternalTest { internal int x;}class InternalDemo { static void Main() { InternalTest ob = new InternalTest(); ob.x = 10; // Π΄ΠΎΡΡΡΠΏΠ½ΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠΎΠΌ ΠΆΠ΅ ΡΠ°ΠΉΠ»Π΅ Console.WriteLine("ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ob.x: " + ob.x); }}
Π ΠΊΠ»Π°ΡΡΠ΅ InternalTest ΠΏΠΎΠ»Π΅ Ρ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ internal. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΏΠΎΠ»Π΅ Ρ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π² ΡΠ°ΠΌΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅, Π½ΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΊΠΎΠ΄ ΠΊΠ»Π°ΡΡΠ° InternalDemo, ΠΎΠ½ΠΎ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠΠΠΠ 17. ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΠΈΠΏΠΎΠ², ΡΠ΅ΡΠ»Π΅ΠΊΡΠΈΡ ΠΈ Π°ΡΡΠΈΠ±ΡΡΡ
Π ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ ΡΡΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π°: Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΠΈΠΏΠΎΠ², ΡΠ΅ΡΠ»Π΅ΠΊΡΠΈΡΠΈ Π°ΡΡΠΈΠ±ΡΡΡ. ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΠΈΠΏΠΎΠ² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠΈΠΏΠ΄Π°Π½Π½ΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π Π΅ΡΠ»Π΅ΠΊΡΠΈΡ β ΡΡΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΠΉ ΠΎ ΡΠΈΠΏΠ΅ Π΄Π°Π½Π½ΡΡ . ΠΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΠΈ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ, ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡΠ²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ,ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ΠΎ Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°ΡΡΠΈΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ, Ρ.Π΅. Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π΅Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΡΡΠΈΠ±ΡΡ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Π‘#. ΠΡΡΠΈΠ±ΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΡΠΊΠ°Π·Π°ΡΡΠ΄Π»Ρ ΠΊΠ»Π°ΡΡΠΎΠ², ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΈ ΠΏΠΎΠ»Π΅ΠΉ. ΠΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ°Π·ΡΠ΅ΡΠ°Π΅ΡΡΡ ΠΎΠΏΡΠ°ΡΠΈΠ²Π°ΡΡ Π°ΡΡΠΈΠ±ΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡΡΠ²Π΅Π΄Π΅Π½ΠΈΠΉ ΠΎ Π½ΠΈΡ . ΠΠ»Ρ ΡΡΠΎΠΉ ΡΠ΅Π»ΠΈ Π² Π°ΡΡΠΈΠ±ΡΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡΠ΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΠΈΠΏΠΎΠ² ΠΈ ΡΠ΅ΡΠ»Π΅ΠΊΡΠΈΡ.ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΠΈΠΏΠΎΠ²
ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΠΈΠΏΠΎΠ² (RTTI) ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅ΡΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠΈΠΏ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.ΠΠ½Π° ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΏΠΎ ΡΠ΅Π»ΠΎΠΌΡ ΡΡΠ΄Ρ ΠΏΡΠΈΡΠΈΠ½. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ Π½Π° Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠΎΡΠ½ΠΎΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠΈΠΏ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠ³ΠΎ ΠΏΠΎ ΡΡΠΎΠΉ ΡΡΡΠ»ΠΊΠ΅. ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΠΈΠΏΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π·Π°ΡΠ°Π½Π΅Π΅, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΄Π°ΡΠ½ΡΠΌ Π±ΡΠ΄Π΅Ρ ΠΈΡΡ ΠΎΠ΄ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΡΡΠΈΠΏΠΎΠ², ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Ρ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ Π² ΡΠ²ΡΠ·ΠΈ ΡΠ½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΡΠΈΠΏΠΎΠ². ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΠΈΠΏΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ Π³Π»Π°Π²Π½ΠΎΠΉ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠ΅ΠΉΡΠ΅ΡΠ»Π΅ΠΊΡΠΈΠΈ.
ΠΠ»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΡΠΈΠΏΠΎΠ² Π² Π‘# ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Ρ ΡΡΠΈΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ»ΠΎΠ²Π°: is, as ΠΈ typeof. ΠΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· ΡΡΠΈΡ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ»ΠΎΠ² ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ Π΄Π°Π»Π΅Π΅ ΠΏΠΎ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ.ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΈΠΏΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° is
ΠΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΡΠΈΠΏ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° is. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° Π΅Π³ΠΎ ΠΎΠ±ΡΠ°Ρ ΡΠΎΡΠΌΠ°:Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ is ΡΠΈΠΏ
Π³Π΄Π΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠ΅Π΅ ΠΎΠ±ΡΠ΅ΠΊΡ, ΡΠΈΠΏ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ. ΠΡΠ»ΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΉ ΠΈΠ»ΠΈ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ ΡΠΈΠΏ, ΠΊΠ°ΠΊ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌΡΠΉ ΡΠΈΠΏ, ΡΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΡΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΠΈΡΡΠΈΠ½Π½ΡΠΌ, Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ βΠ»ΠΎΠΆΠ½ΡΠΌ. Π’Π°ΠΊ, ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΠΈΡΡΠΈΠ½Π½ΡΠΌ, Π΅ΡΠ»ΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌΡΠΉ ΡΠΈΠΏΠ² ΡΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ ΡΠΎΡΠΌΠ΅. Π ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ΅ is ΠΎΠ±Π° ΡΠΈΠΏΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ ΠΊΠ°ΠΊ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠ΅, Π΅ΡΠ»ΠΈΠΎΠ½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠΈΠΏΠ° ΠΈΠ»ΠΈ Π΅ΡΠ»ΠΈ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΡΠ»ΠΎΠΊ, ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠ°ΠΈΠ»ΠΈ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠ°.
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° is.// ΠΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° is.using System;class A {}class Π : A {}class UseIs { static void Main() { A a = new A(); Π b = new Π(); if(a is A) Console.WriteLine("Π° ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠΏ A"); if(b is A) Console.WriteLine("b ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ Π, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΉ ΠΎΡ Π"); if(a is Π) Console.WriteLine("ΠΠ΅ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π° Π½Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΉ ΠΎΡ Π"); if(b is Π) Console.WriteLine("Π ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠΏ Π"); if(a is object) Console.WriteLine("Π° ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠΏ object"); }}
ΠΠΎΡ ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.Π° ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠΏ Πb ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ Π, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΉ ΠΎΡ Πb ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠΏ ΠΠ° ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠΏ object
ΠΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ is Π² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΠΎΡΡΠ½Π΅Π½ΠΈΠΉ,Π½ΠΎ Π΄Π²Π° ΠΈΠ· Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ΅ ΠΆΠ΅ ΡΠ°Π·ΡΡΡΠ½ΠΈΡΡ. ΠΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ, ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΡΠΎΠΊΡ ΠΊΠΎΠ΄Π°.if(b is A) Console.WriteLine("b ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ Π, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΉ ΠΎΡ Π");
Π£ΡΠ»ΠΎΠ²Π½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ if Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ b ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΡΠΈΠΏΠ° Π, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΌ ΠΎΡ ΡΠΈΠΏΠ° Π. ΠΠΎ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ΅ Π½Π΅ΡΠΏΡΠ°Π²Π΅Π΄Π»ΠΈΠ²ΠΎ. Π’Π°ΠΊ, Π΅ΡΠ»ΠΈ Π² ΡΡΡΠΎΠΊΠ΅ ΠΊΠΎΠ΄Π°if(a is Π) Console.WriteLine("ΠΠ΅ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π° Π½Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΉ ΠΎΡ Π");
ΡΡΠ»ΠΎΠ²Π½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ if Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΡΠΈΠΏΠ° Π, Π½Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΡ ΡΠΈΠΏΠ° Π. ΠΠΎΡΡΠΎΠΌΡ Π° Π½Π΅ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΡΠΈΠΏΡ Π.ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° as
ΠΠ½ΠΎΠ³Π΄Π° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, Π½ΠΎ Π½Π΅Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ ΠΈΡΡ ΠΎΠ΄ ΡΡΠΎΠ³ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ Π½Π΅ΡΠ΄Π°ΡΠ½ΡΠΌ, ΡΡΠΎΠ²ΠΏΠΎΠ»Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠΈ ΡΠΈΠΏΠΎΠ². ΠΠ»Ρ ΡΡΠΎΠΉ ΡΠ΅Π»ΠΈ ΡΠ»ΡΠΆΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ as, ΠΈΠΌΠ΅ΡΡΠΈΠΉ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΎΠ±ΡΡΡ ΡΠΎΡΠΌΡ:Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ as ΡΠΈΠΏ
Π³Π΄Π΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅ΠΌΠΎΠ΅ Π² ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΡΠΈΠΏ.ΠΡΠ»ΠΈ ΠΈΡΡ ΠΎΠ΄ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠ΄Π°ΡΠ½ΡΠΌ, ΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΡΡΡΠ»ΠΊΠ° Π½Π°ΡΠΈΠΏ, Π° ΠΈΠ½Π°ΡΠ΅ β ΠΏΡΡΡΠ°Ρ ΡΡΡΠ»ΠΊΠ°. ΠΠΏΠ΅ΡΠ°ΡΠΎΡ as ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΡΠ»ΠΎΠΊ, ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΠΎΡΡΠΈ, ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ, ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ.
Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ as ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΡΠΆΠΈΡΡ ΡΠ΄ΠΎΠ±Π½ΠΎΠΉ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ is. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ isΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΈΠΏΠΎΠ².// ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ is Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΈΠΏΠΎΠ².using System;class Π {}class Π : Π {}class CheckCast { static void Main() { A a = new A(); Π b = new Π(); // ΠΡΠΎΠ²Π΅ΡΠΈΡΡ, ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ Π° ΠΊ ΡΠΈΠΏΡ Π. if(a is Π) // Π΅ΡΠ»ΠΈ Π΄Π°, ΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² b = (Π) Π°; else // Π΅ΡΠ»ΠΈ Π½Π΅Ρ, ΡΠΎ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² b = null; if(b==null) Console.WriteLine("ΠΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² b = (Π) HE Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎ."); else Console.WriteLine("ΠΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² b = (Π) Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎ."); }}
ΠΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄Π°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.ΠΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² b = (Π) ΠΠ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎ.
ΠΠ°ΠΊ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠ· ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π²ΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠΈΠΏ ΠΎΠ±ΡΠ΅ΠΊΡΠ°Π° Π½Π΅ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ ΡΠΈΠΏΠΎΠΌ Π, ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ Π΅Π³ΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊ ΡΠΈΠΏΡ Π Π½Π΅ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Π΅ΡΡΡ Π² ΡΡΠ»ΠΎΠ²Π½ΠΎΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ΅ if. ΠΠΎ ΡΠ°ΠΊΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π² Π΄Π²Π°ΡΡΠ°ΠΏΠ°. Π‘Π½Π°ΡΠ°Π»Π° ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ Π² ΠΎΠ±ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΈΠΏΠΎΠ²,Π° Π·Π°ΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π΅Π΅. ΠΠ±Π° ΡΡΠ°ΠΏΠ° ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Ρ Π² ΠΎΠ΄ΠΈΠ½ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°as, ΠΊΠ°ΠΊ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½Π°Ρ Π½ΠΈΠΆΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°.// ΠΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° as.using System;class A {}class Π : A {}class CheckCast { static void Main() { A a = new A(); Π b = new Π(); b = a as Π; // Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ², Π΅ΡΠ»ΠΈ ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ if(b==null) Console.WriteLine("ΠΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² b = (Π) ΠΠ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎ."); else Console.WriteLine("ΠΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² b = (Π) Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎ."); }}
ΠΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄Π°Π΅Ρ ΠΏΡΠ΅ΠΆΠ½ΠΈΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.ΠΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² b = (Π) ΠΠ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎ.
Π Π΄Π°Π½Π½ΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈ ΡΠΎΠΌ ΠΆΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ΅ as ΡΠ½Π°ΡΠ°Π»Π° ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡΠΎΠ±ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΈΠΏΠΎΠ², Π° Π·Π°ΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΠ°ΠΌΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΈΠΏΠΎΠ², Π΅ΡΠ»ΠΈ ΠΎΠ½Π° Π΄ΠΎΠΏΡΡΡΠΈΠΌΠ°.ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° typeof
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° Π²ΡΡ ΡΠ²ΠΎΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΡΡΡ, ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ as ΠΈ is ΠΏΡΠΎΠ²Π΅ΡΡΡΡ Π»ΠΈΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Π΄Π²ΡΡ ΡΠΈΠΏΠΎΠ². ΠΠΎ Π·Π°ΡΠ°ΡΡΡΡ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ°ΠΌΠΎΠΌ ΡΠΈΠΏΠ΅. ΠΠ»Ρ ΡΡΠΎΠΉ ΡΠ΅Π»ΠΈ Π²Π‘# ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ typeof. ΠΠ½ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° System.Π’ΡΡΠ΅ Π΄Π»Ρ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Π΄Π°Π½Π½ΡΡ . ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° ΠΎΠ±ΡΠ°Ρ ΡΠΎΡΠΌΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° typeof:typeof(ΡΠΈΠΏ)