Вызов методов

В следующем примере, MathTest, демонстрируется определение и создание экземпляров классов, а также определение и вызов методов. Помимо класса, содержащего методMain (), в нем определен класс по имени MathTest, содержащий набор методов и полей.

using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace MathProbe{ class Program { static void Main(string[] args) { // Попытка вызова некоторых статических функций Console.WriteLine ("Pi равно " + MathTest.GetPi ()); int x = MathTest.GetSquareOf(5); Console.WriteLine("5 в квадрате равно " + x) ; // Создание объекта MathTest MathTest math = new MathTest (); // это способ, которым в С# создаются // экземпляры ссылочного типа // Вызов нестатических методов math.value = 30; Console.WriteLine("Поле value переменной math содержит " + math.value); Console.WriteLine("30 в квадрате равно " + math.GetSquare()); Console.ReadLine(); } }// Определение класса MathTest, методы которого мы вызываем class MathTest { public int value; public int GetSquare() { return value * value; } public static int GetSquareOf(int x) { return x * x; } public static double GetPi() { return 3.14159; } }}

Запуск на выполнение примера MathTest даст следующий результат:

Pi равно 3.141595 в квадрате равно 25Поле value переменной math содержит 3030 в квадрате равно 900

Как можно видеть в коде, класс MathTest содержит поле, которое хранит число, а также метод для вычисления квадрата этого числа. Кроме того, он включает два статических метода — один для возврата значения числа "пи" и другой — для вычисления квадрата числа, переданного в параметре.

Некоторые свойства этого класса на самом деле не могут служить примером правильного дизайна программы С#. Например, GetPi () следовало бы реализовать в виде константного поля, но остальная часть демонстрирует концепции, которые пока не рассматривались.