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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«C# 4.0: ΠΏΠΎΠ»Π½ΠΎΠ΅ руководство». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 44

Автор Π“Π΅Ρ€Π±Π΅Ρ€Ρ‚ Π¨ΠΈΠ»Π΄Ρ‚

Width = w;

Height = h;


ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.


this.Width = w;

this.Height = h;


РазумССтся, Ρ‚Π°ΠΊΠΎΠΉ способ записи Π½Π΅ Π΄Π°Π΅Ρ‚ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Π½ΠΈΠΊΠ°ΠΊΠΈΡ… прСимущСств. Π Π°Π΄ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ вСсь класс Rect, написанный с использованиСм ссылки this.


using System;

class Rect {

  public int Width;

  public int Height;


  public Rect(int w, int h) {

    this.Width = w;

    this.Height = h;

  }


  public int Area()    {

    return this.Width * this.Height;

  }

}


class UseRect {

  static void Main() {

    Rect rl = new Rect(4, 5);

    Rect r2 = new Rect(7, 9);


    Console.WriteLine("ΠŸΠ»ΠΎΡ‰Π°Π΄ΡŒ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° rl: " + rl.Area());

    Console.WriteLine("ΠŸΠ»ΠΎΡ‰Π°Π΄ΡŒ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° r2: " + r2.Area());

  }

}


Π’ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово this Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΌ Π²Ρ‹ΡˆΠ΅ способом Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° Π‘#, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ это практичСски Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄Π°Π΅Ρ‚, Π΄Π° ΠΈ стандартная Ρ„ΠΎΡ€ΠΌΠ° записи Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ ΠΈ понятнСС. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΌΡƒ слову this ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½Π΅ ΠΎΠ΄Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅. НапримСр, Π² синтаксисС C# допускаСтся Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΈΠ»ΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΈ Ρƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ экзСмпляра. Π’ этом случаС имя локальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ скрываСт ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ экзСмпляра. Для доступа ΠΊ скрытой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ экзСмпляра ΠΈ слуТит ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово this. НапримСр, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄ являСтся ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния синтаксиса C# способом написания конструктора Rect().


public Rect(int Width, int Height) {

  this.Width = Width; this.Height = Height;

}


Π’ этом Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ написания конструктора Rect() ΠΈΠΌΠ΅Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚ с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… экзСмпляра, Π° ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ ΠΈΡ…. Но для "обнаруТСния" скрытых ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… слуТит ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово this.

ГЛАВА 7 ΠœΠ°ΡΡΠΈΠ²Ρ‹ ΠΈ строки

Π’ этой Π³Π»Π°Π²Π΅ Ρ€Π΅Ρ‡ΡŒ вновь ΠΏΠΎΠΉΠ΄Π΅Ρ‚ ΠΎ Ρ‚ΠΈΠΏΠ°Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π² Π‘#. Π’ Π½Π΅ΠΉ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ массивы ΠΈ Ρ‚ΠΈΠΏ string, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ†ΠΈΠΊΠ»Π° foreach.


ΠœΠ°ΡΡΠΈΠ²Ρ‹

Массив прСдставляСт собой ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° с ΠΎΠ±Ρ‰ΠΈΠΌ для обращСния ΠΊ Π½ΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ. Π’ C# массивы ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΌΠΈ, Ρ‚Π°ΠΊ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΌΠΈ, хотя Ρ‡Π°Ρ‰Π΅ всСго ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы. ΠœΠ°ΡΡΠΈΠ²Ρ‹ слуТат самым Ρ€Π°Π·Π½Ρ‹ΠΌ цСлям, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΡƒΠ΄ΠΎΠ±Π½Ρ‹Π΅ срСдства для объСдинСния связанных вмСстС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. НапримСр, Π² массивС ΠΌΠΎΠΆΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ суточныС Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹, зарСгистрированныС Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ мСсяца, ΠΏΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ Π±ΠΈΡ€ΠΆΠ΅Π²Ρ‹Ρ… курсов ΠΈΠ»ΠΈ ΠΆΠ΅ названия ΠΊΠ½ΠΈΠ³ ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΈΠ· домашнСй Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

Π“Π»Π°Π²Π½ΠΎΠ΅ прСимущСство массива β€” Π² ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠΈ Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Π’Π°ΠΊ, Ссли имССтся массив, содСрТащий Π΄ΠΈΠ²ΠΈΠ΄Π΅Π½Π΄Ρ‹, Π²Ρ‹ΠΏΠ»Π°Ρ‡ΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΠ΅ Π°ΠΊΡ†ΠΈΠΉ, Ρ‚ΠΎ, ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π² цикличСскоС ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ элСмСнтам этого массива, ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· особого Ρ‚Ρ€ΡƒΠ΄Π° Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ срСдний Π΄ΠΎΡ…ΠΎΠ΄ ΠΎΡ‚ этих Π°ΠΊΡ†ΠΈΠΉ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, массивы ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π»Π΅Π³ΠΊΠΎ ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ….

Массивами Π² C# ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ практичСски Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… языках программирования. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Ρƒ Π½ΠΈΡ… имССтся ΠΎΠ΄Π½Π° ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ: ΠΎΠ½ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². ИмСнно поэтому ΠΈΡ… рассмотрСниС Π±Ρ‹Π»ΠΎ ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½ΠΎ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π² этой ΠΊΠ½ΠΈΠ³Π΅ Π½Π΅ Π±Ρ‹Π»ΠΈ прСдставлСны

ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. РСализация массивов Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π΄Π°Π΅Ρ‚ ряд сущСствСнных прСимущСств, ΠΈ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ самым послСдним срСди Π½ΠΈΡ… являСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΡ‚ΠΈΠ»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ массивы срСдствам "сборки мусора".


ΠžΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы

ΠžΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив прСдставляСт собой список связанных ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Π’Π°ΠΊΠΈΠ΅ списки часто ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. НапримСр, Π² ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΠΌ массивС ΠΌΠΎΠΆΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Π΅ Π½ΠΎΠΌΠ΅Ρ€Π° Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ сСти ΠΈΠ»ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ срСдниС ΡƒΡ€ΠΎΠ²Π½ΠΈ достиТСний бСйсбольной ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

Для Ρ‚oΠ³o Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ массивом Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, трСбуСтся двухэтапная ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² C# массивы Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, которая ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ массиву. И Π²ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ экзСмпляр массива, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ new. Π’Π°ΠΊ, для объявлСния ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ примСняСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ общая Ρ„ΠΎΡ€ΠΌΠ°:


Ρ‚ΠΈΠΏ[] имя_массива = new Ρ‚ΠΈΠΏ[Ρ€Π°Π·ΠΌΠ΅Ρ€] ;


Π³Π΄Π΅ Ρ‚ΠΈΠΏ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ элСмСнта массива. Π’ΠΈΠΏ элСмСнта опрСдСляСт Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта, ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ массив. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°ΡŽΡ‚ Ρ‚ΠΈΠΏ. Они ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив. А Ρ€Π°Π·ΠΌΠ΅Ρ€ опрСдСляСт число элСмСнтов массива.

-----------------------------------------------

ΠŸΠ Π˜ΠœΠ•Π§ΠΠΠ˜Π•

Если Ρƒ вас имССтся Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠΏΡ‹Ρ‚ программирования Π½Π° Π‘ ΠΈΠ΄ΠΈ C++, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ особоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ΡΡ массивы Π² Π‘#. Π’ частности, ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ послС названия Ρ‚ΠΈΠΏΠ°, Π° Π½Π΅ ΠΈΠΌΠ΅Π½ΠΈ массива.

-----------------------------------------------

ΠžΠ±Ρ€Π°Ρ‚ΠΈΠΌΡΡ ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ. Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π½ΠΈΠΆΠ΅ строкС ΠΊΠΎΠ΄Π° создаСтся массив Ρ‚ΠΈΠΏΠ° int, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ составляСтся ΠΈΠ· дСсяти элСмСнтов ΠΈ связываСтся с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ссылки Π½Π° массив, ΠΈΠΌΠ΅Π½ΡƒΠ΅ΠΌΠΎΠΉ sample.


int[] sample = new int[10];


Π’ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ sample хранится ссылка Π½Π° ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти, выдСляСмой для массива ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ new. Π­Ρ‚Π° ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ достаточно большой, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² Π½Π΅ΠΉ ΠΌΠΎΠ³Π»ΠΈ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π΄Π΅ΡΡΡ‚ΡŒ элСмСнтов массива Ρ‚ΠΈΠΏΠ° int.

Как ΠΈ ΠΏΡ€ΠΈ создании экзСмпляра класса, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ Π²Ρ‹ΡˆΠ΅ объявлСниС массива ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° Π΄Π²Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°. НапримСр:


int[] sample;

sample = new int[10];


Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС пСрСмСнная sample Π½Π΅ ссылаСтся Π½Π° ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ физичСский ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½Π° создаСтся Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅. И лишь послС выполнСния Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° эта пСрСмСнная ссылаСтся Π½Π° массив.

Доступ ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ элСмСнту массива осущСствляСтся ΠΏΠΎ индСксу: ИндСкс ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ элСмСнта Π² массивС. Π’ языкС C# индСкс ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ элСмСнта всСх массивов оказываСтся Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ. Π’ частности, массив sample состоит ΠΈΠ· 10 элСмСнтов с индСксами ΠΎΡ‚ 0 Π΄ΠΎ 9. Для индСксирования массива достаточно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ³ΠΎ элСмСнта Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобках. Π’Π°ΠΊ, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт массива sample обозначаСтся ΠΊΠ°ΠΊ sample [ 0 ], Π° послСдний Π΅Π³ΠΎ элСмСнт β€” ΠΊΠ°ΠΊ sample [ 9 ]. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π·Π°ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ всС 10 элСмСнтов массива sample.


// ΠŸΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив.

using System;

class ArrayDemo {

  static void Main() {

    int[] sample = new int[10];

    int i;


    for(i =0; i < 10; i = i + 1) sample[i] = i;

    for(i = 0; i < 10; i = i + 1)

      Console.WriteLine("sample[" + i + "]: " + sample[i]);

  }

}


ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ получаСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.


sample[0]: 0

sample[1]: 1

sample[2]: 2

sample[3]: 3

sample[4]: 4

sample[5]: 5

sample[6]: 6

sample[7]: 7

sample[8]: 8

sample[9]: 9


БхСматичСски массив sample ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.


ΠœΠ°ΡΡΠΈΠ²Ρ‹ часто ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π΄Π°ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π»Π΅Π³ΠΊΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ с большим числом взаимосвязанных ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. НапримСр, Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ выявляСтся срСднСС арифмСтичСскоС ряда Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, хранящихся Π² массивС nums, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ цикличСски ΠΎΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Ρ†ΠΈΠΊΠ»Π° for.


// Π’Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ срСднСС арифмСтичСскоС ряда Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

using System;

class Average {

  static void Main() {

    int[] nums = new int[10];

    int avg = 0;


    nums[0] = 99;

    nums[1] = 10;

    nums[2] = 100;

    nums[3] = 18;