Π£ΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° ΠΈ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠ°
ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡ ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ ΠΈ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°ΠΊΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ² ΠΊΠ°ΠΊ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ. Π Π½ΠΈΠΌ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊΠ»Π°ΡΡ ArrayList (ΠΌΠ°ΡΡΠΈΠ²-ΡΠΏΠΈΡΠΎΠΊ) ΠΈΠ· ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΈΠΌΠ΅Π½ System.Collections. ΠΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° ArrayList Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ»ΡΡΠ°ΡΡ «Π²Π΅Π΄Π΅Ρ ΡΠ΅Π±Ρ» ΠΊΠ°ΠΊ ΠΌΠ°ΡΡΠΈΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊ Π½Π΅ΠΌΡ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΠ° ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΡ. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ², ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΡ ΠΎΡ ΠΊΠ»Π°ΡΡΠ° Array, ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΊΠ»Π°ΡΡΠ° ArrayList ΠΌΠΎΠ³ΡΡ ΡΠ°ΡΡΠΈ… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
Π£ΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° ΠΈ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
ΠΠΎΠ³Π΄Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅ΡΡΡ ΠΊ ΡΠΈΠΏΡ object ΠΈΠ»ΠΈ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ ΡΠΈΠΏΡ ΡΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΡΡΡΡΠΊΡΡΡΠΎΠΉ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ (boxing). ΠΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ Π²ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΡΡΠ²Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°.
Π£ΠΏΠ°ΠΊΠΎΠ²ΠΊΠΎΠΉ Π½Π°Π·ΡΠ²Π°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ²Π½ΠΎΠ³ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ· ΡΠΈΠΏΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π² ΡΠΈΠΏ ΡΡΡΠ»ΠΎΠΊ. ΠΡΠΈ ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠ΅ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² ΠΊΡΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Ρ ΡΠΈΠΏΠΎΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ ΡΠ»ΡΠΆΠΈΡ ΡΡΡΠ»ΠΊΠ° Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΡΡΠΈ.
ΠΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ΅ΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° (unboxing), ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ ΡΠΈΠΏΠΎΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ , ΠΊΠΎΠ³Π΄Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΠ΅ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ ΡΡΡΠ»ΠΊΠ΅ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ ΡΡΡΠ»ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ ΡΠΈΠΏΠΎΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π²ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΡΠ·ΡΠΊΠ° C# ΠΈΠΌΠ΅ΡΡ ΠΎΠ±ΡΠΈΠΉ Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ object, ΡΠΎ ΡΡΡΠ»ΠΊΠ΅ ΡΠΈΠΏΠ° object ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΡΡΡΡΠΊΡΡΡΡ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠ°, Π½Π΅ ΡΡΠ΅Π±ΡΡΡΠ°Ρ Π²ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΡΡΠ²Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°. ΠΠ±ΡΠ°ΡΠ½Π°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° — ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° — Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ. ΠΠ»Ρ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΈΠΏΠΎΠ².
Π‘ΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΊ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ, Π½ΠΎ ΠΈ ΠΊ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΈ ΠΊ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠΌΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ Ρ ΡΠ°ΠΊΠΈΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ:
static object reDouble (object obj).
ΠΠ΅ΡΠΎΠ΄ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° object ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠΈΠΏΠ°. ΠΠ½Π΅ΡΠ½Π΅ Π½ΠΈΡΡΠΎ Π½Π΅ ΠΏΡΠ΅ΠΏΡΡΡΡΠ²ΡΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ ΠΊ ΡΡΠΎΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°. ΠΠ΄Π½Π°ΠΊΠΎ Π² ΡΠ΅Π»Π΅ ΠΌΠ΅ΡΠΎΠ΄Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΠΈΡΡΠ²Π°ΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΡΠΈΠΏ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΈ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΡΡΠΈΠΌ ΡΠΈΠΏΠΎΠΌ. Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΡΡΡΡΠΊΡΡΡΠ½ΡΠΉ ΡΠΈΠΏ Structl Ρ ΠΏΠΎΠ»Π΅ΠΌ Ρ ΡΠΈΠΏΠ° double ΠΈ ΠΌΠ΅ΡΠΎΠ΄ Ρ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΌ Π²ΡΡΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ.
// 1510.cs — ΡΡΡΡΠΊΡΡΡΡ, ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠ°, ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° using System;
struct Structl // ΡΡΡΡΠΊΡΡΡΠ½ΡΠΉ ΡΠΈΠΏ
{
double x;
public double X { get { return x; } set { x = value; } }.
}
class Program.
{
static object reDouble (object obj).
{
if (obj is Structl).
{
Structl st = (Structl)obj; st. X = 2 * st. X; return st;
}
else.
Console.WriteLine («HeH3BecTHbiii ΡΠΈΠΏ!»);
return obj;
}
static void Main ().
{
Structl one = new StructlQ;
one.X = 4;
Structl two = (Structl)reDouble (one);
Console.WriteLine («one.X={0}; two. X={l}», one. X, two. X);
Console.WriteLine («(int)reDouble (55)={0}», (int)reDouble (55));
}
>
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
one.X=4; two. X=8 ΠΠ΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΡΠΈΠΏ!
(int)reDouble (55)=55.
ΠΠ΅ΡΠΎΠ΄ reDouble () ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΡΠΈΠΏΠ° Structl, Ρ ΠΎΡΡ Π΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°. ΠΡΠ»ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠΏ Structl, ΠΌΠ΅ΡΠΎΠ΄ reDouble () Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π΅Π³ΠΎ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΡ ΠΈ ΡΠ΄Π²Π°ΠΈΠ²Π°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Ρ double Ρ . ΠΡΠ»ΠΈ ΡΠΈΠΏ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΎΡΠ»ΠΈΡΠ΅Π½ ΠΎΡ Structl, ΡΠΎ ΡΠΈΠΏ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π² ΡΠΎΡΠΊΡ Π²ΡΠ·ΠΎΠ²Π° Π² «ΡΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΠΎΠΌ» Π²ΠΈΠ΄Π΅. ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ Main () ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ reDoubleQ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΎ Π΄Π²Π°ΠΆΠ΄Ρ Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΡΠ°Π·Π½ΡΡ ΡΠΈΠΏΠΎΠ².
ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡ ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ ΠΈ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°ΠΊΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ² ΠΊΠ°ΠΊ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ. Π Π½ΠΈΠΌ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊΠ»Π°ΡΡ ArrayList (ΠΌΠ°ΡΡΠΈΠ²-ΡΠΏΠΈΡΠΎΠΊ) ΠΈΠ· ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΈΠΌΠ΅Π½ System.Collections. ΠΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° ArrayList Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ»ΡΡΠ°ΡΡ «Π²Π΅Π΄Π΅Ρ ΡΠ΅Π±Ρ» ΠΊΠ°ΠΊ ΠΌΠ°ΡΡΠΈΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊ Π½Π΅ΠΌΡ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΠ° ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΡ. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ², ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΡ ΠΎΡ ΠΊΠ»Π°ΡΡΠ° Array, ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΊΠ»Π°ΡΡΠ° ArrayList ΠΌΠΎΠ³ΡΡ ΡΠ°ΡΡΠΈ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΡΠΎΠΌ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ, ΠΏΡΠΈΡΠ΅ΠΌ ΡΠΎΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π±Π΅Π· Π²ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΡΡΠ²Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°.
ΠΠΎ Π½Π΅ Π²ΡΠ΅ ΠΏΡΠΎΡΡΠΎ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠ°ΡΡΡΡΠ΅Π³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°-ΡΠΏΠΈΡΠΊΠ°:
using System. Collection;
ArrayList dinamo = new ArrayList (3);
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π° ΡΡΡΠ»ΠΊΠ° dinamo ΠΈ Π°ΡΡΠΎΡΠΈΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Ρ Π½Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° ArrayList. Π ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ ΠΊ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ ArrayList () ΡΠΊΠ°Π·Π°Π½ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ²Π°-ΡΠΏΠΈΡΠΊΠ°. ΠΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ, ΡΡΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΠΌΠ°ΡΡΠΈΠ²Π°-ΡΠΏΠΈΡΠΊΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΡ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ 0, 1, 2. ΠΠ΄Π½Π°ΠΊΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΠΏΠΎΠΏΡΡΠΊΠ° Π±ΡΠ΄Π΅Ρ ΠΎΡΠΈΠ±ΠΎΡΠ½ΠΎΠΉ:
dinamo [1] = 45.3; // ΠΎΡΠΈΠ±ΠΊΠ° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π² Π²ΡΠ·ΠΎΠ²Π΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΡΠΊΠ°Π·Π°Π½ ΡΠ°Π·ΠΌΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ²Π°-ΡΠΏΠΈΡΠΊΠ°, ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΠΎΠΌ ΠΌΠ°ΡΡΠΈΠ²Π΅-ΡΠΏΠΈΡΠΊΠ΅ ΠΠΠ’! ΠΡΠ»ΠΈΡΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΊΠ»Π°ΡΡΠ° ArrayList ΠΎΡ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π² ΠΌΠ°ΡΡΠΈΠ²-ΡΠΏΠΈΡΠΎΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π²Π½Π°ΡΠ°Π»Π΅ Π·Π°Π½Π΅ΡΠ΅Π½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π½Π΅ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° Add () ΠΊΠ»Π°ΡΡΠ° ArrayList.
ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΌΠ΅ΡΠΎΠ΄Π°:
public virtual int Add (object value).
ΠΠ΅ΡΠΎΠ΄ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π² ΠΊΠΎΠ½Π΅Ρ ΠΌΠ°ΡΡΠΈΠ²Π°-ΡΠΏΠΈΡΠΊΠ° ΡΠ»Π΅ΠΌΠ΅Π½Ρ, Π·Π°Π΄Π°Π½Π½ΡΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ. ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ — ΠΏΠΎΡΡΠ΄ΠΊΠΎΠ²ΡΠΉ Π½ΠΎΠΌΠ΅Ρ (ΠΈΠ½Π΄Π΅ΠΊΡ) Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°. ΠΡΠΌΠ΅ΡΠ°ΡΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ Π½ΡΠ»Ρ.
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΡΠΈΠΏ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° object, ΡΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π² ΠΎΠ΄ΠΈΠ½ ΠΌΠ°ΡΡΠΈΠ²ΡΠΏΠΈΡΠΎΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠ°Π·Π½ΡΡ ΡΠΈΠΏΠΎΠ². ΠΡΠΎΡΠ΅Π΄ΡΡΠ° ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ°Ρ Π΄Π»Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² Ρ ΡΠΈΠΏΠ°ΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ. Π Π²ΠΎΡ ΠΏΡΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΌΠ°ΡΡΠΈΠ²Π°-ΡΠΏΠΈΡΠΊΠ° Π½ΡΠΆΠ½ΠΎ ΡΠ²Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΡ, ΡΠ·Π½Π°Π² ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ ΡΠΈΠΏ ΠΈΠΌΠ΅Π΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½Ρ.
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΡΠΎΠ·Π΄Π°Π½ ΠΌΠ°ΡΡΠΈΠ²-ΡΠΏΠΈΡΠΎΠΊ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΉ ΡΡΡΠ»ΠΊΠΎΠΉ ArrayList dynamo. ΠΠ°ΡΠ΅ΠΌ Π² ΡΡΠΎΡ ΠΌΠ°ΡΡΠΈΠ²-ΡΠΏΠΈΡΠΎΠΊ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΡΠΈΠΏΠΎΠ² double, int ΠΈ Points, Π³Π΄Π΅ Points — ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΡΠΈΠΏ, ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΠΉ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΊΠ°ΠΊ ΡΡΡΡΠΊΡΡΡΠ½ΡΠΉ. Π’Π΅ΠΊΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
// 15_ll.cs — ΡΡΡΡΠΊΡΡΡΡ ΠΈ ΠΌΠ°ΡΡΠΈΠ²-ΡΠΏΠΈΡΠΎΠΊ ΡΠΈΠΏΠ° ArrayList using System;
using System. Collections; // ΠΠ»Ρ ArrayList class Program {.
static void Main ().
{
ArrayList dinamo = new ArrayList (); dinamo. Add (4.8); dinamo. Add (new PointSQ); dinamo. Add (100);
Points ps = new PointSQ; ps. X = 10.2; dinamo. Add (ps); dinamo[l] = 1.23; foreach (object ob in dinamo) if (ob is Points).
Console.WriteLine («Struct: X={0}; Y={1}» ,.
((PointS)ob).X, ((PointS)ob).Y);
else.
if (ob is Double).
Console.WriteLine («Double: Value={0}» ,.
((double)ob) .ToStringQ);
>
}
struct Points // ΡΡΡΡΠΊΡΡΡΠ½ΡΠΉ ΡΠΈΠΏ
{
double x, Ρ;
public double X { get { return x; } set { x = value; } } public double Y { get { return y; } set { Ρ = value; } }.
}
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
Double: Value=4,8 Double: Value=l, 23 Struct: X=10,2; Y=0.
Π ΠΌΠ΅ΡΠΎΠ΄Π΅ Main () Π² ΠΌΠ°ΡΡΠΈΠ²-ΡΠΏΠΈΡΠΊΠΎΠΊ dinamo Π·Π°Π½Π΅ΡΠ΅Π½Ρ ΡΠ΅ΡΡΡΠ΅ ΡΠ°Π·Π½ΠΎΡΠΈΠΏΠ½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΊΠ°ΠΊ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΠ΅ΠΉ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΎ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ Π²ΡΠΎΡΠΎΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π°-ΡΠΏΠΈΡΠΊΠ°:
dinamo[l] = 1.23;
ΠΠ΅ΡΠ΅Π΄ ΡΡΠΈΠΌ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° dinamo [1] Π±ΡΠ» ΠΎΠ±ΡΠ΅ΠΊΡ ΡΡΡΡΠΊΡΡΡΡ Points.
ΠΠΎΡΠ»Π΅ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅-ΡΠΏΠΈΡΠΊΠ΅ dinamo ΡΠ΅ΡΡΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΡΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°ΡΡΡΡ Π² ΡΠΈΠΊΠ»Π΅ foreach. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠΈΠΊΠ»Π° ob ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠΏ object. ΠΠΌΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°ΡΡΡΡ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΠ°Π·Π½ΠΎΡΠΈΠΏΠ½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π°-ΡΠΏΠΈΡΠΊΠ°. ΠΠ΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠΈΠΏΠ° object Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ ΡΠ°Π·Π½ΡΡ ΡΠΈΠΏΠΎΠ² Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ — Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΡΠ²ΠΎΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°, Ρ. Π΅. ΡΠ²ΠΎΠΈ ΡΠ»Π΅Π½Ρ, ΡΠ²ΠΎΠΈ ΠΏΠΎΠ»Ρ. Π ΡΠ΅Π»Π΅ ΡΠΈΠΊΠ»Π° ΡΡΠ»ΠΎΠ²Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠ΅ Π΄Π»Ρ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ ΡΠΈΠΏΠΎΠ². Π Π°ΡΠΏΠΎΠ·Π½Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΈΠΏΡ double ΠΈ Points. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΡΠ»ΠΎΠ²ΠΈΡ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°Ρ if ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ΅ΠΉ is.