25.07.2017 Views

Intro-CSharp-Book-v2015

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Глава 14. Дефиниране на класове 577<br />

Достъп между статични и нестатични членове<br />

В повечето случаи статичните методи се използват за достъпване на<br />

статични полета от класа, в който са дефинирани. Например, когато искаме<br />

да декларираме метод, който да връща броя на създадените обекти от класа<br />

Dog, той трябва да бъде статичен, защото нашият брояч също е статичен:<br />

public static int GetDogCount()<br />

{<br />

return dogCount;<br />

}<br />

Но когато разглеждаме как статични и нестатични методи и полета могат<br />

да се достъпват, не всички комбинации са позволени.<br />

Достъп до нестатичните членове на класа от нестатичен<br />

метод<br />

Нестатичните методи могат да достъпват нестатичните полета и други<br />

нестатични методи на класа. Например, в класа Dog можем да декларираме<br />

метод PrintInfo(), който извежда информация за нашето куче:<br />

public class Dog<br />

{<br />

// Static variable<br />

static int dogCount;<br />

// Instance variables<br />

private string name;<br />

private int age;<br />

Dog.cs<br />

public Dog(string name, int age)<br />

{<br />

this.name = name;<br />

this.age = age;<br />

}<br />

dogCount += 1;<br />

public void Bark()<br />

{<br />

Console.Write("wow-wow");<br />

}<br />

// Non-static (instance) method<br />

public void PrintInfo()<br />

{

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!