25.07.2017 Views

Intro-CSharp-Book-v2015

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

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

public static double CalculateSurface(double radius)<br />

{<br />

return (PI * radius * radius);<br />

}<br />

}<br />

public void PrintSurface()<br />

{<br />

double surface = CalculateSurface(radius);<br />

Console.WriteLine("Circle's surface is: " + surface);<br />

}<br />

В примера, от нестатичния метод PrintSurface() осъществяваме достъп до<br />

стойността на статичното поле PI, като извикваме статичния метод<br />

CalculateSurface(). Нека опитаме да извикаме въпросния нестатичен<br />

метод:<br />

public static void Main()<br />

{<br />

Circle circle = new Circle(3);<br />

circle.PrintSurface();<br />

}<br />

След компилация и изпълнение, на конзолата ще бъде изведено:<br />

Circle's surface is: 28.2743338823081<br />

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

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

поле на класа безпроблемно.<br />

Например, нека вземем нашия клас за математически пресмятания. В него<br />

имаме декларирана константата PI. Можем да декларираме статичен метод<br />

за намиране дължината на окръжност (формулата за намиране периметър<br />

на окръжност е 2πr, където r е радиусът на окръжността), който за<br />

пресмятането на периметъра на дадена окръжност, ползва константата PI.<br />

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

метод, можем от статичния метод Мain() да извикаме статичния метод за<br />

намиране периметъра на окръжност:<br />

MyMathClass.cs<br />

public class MyMathClass<br />

{<br />

public const double PI = 3.141592653589793;<br />

// The method applies the formula: P = 2 * PI * r

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

Saved successfully!

Ooh no, something went wrong!