dotSITE
Учебник по C# Шаблоны проектирования Work in Murano Software.
новости материалы решения форумы группы настройки/о проекте

Пример программы на C#

Теперь пришло время "пощупать" новый язык - посмотреть как он на вкус. Для этого мы разберем небольшую программу на C#.

            // Используем основные классы .NET Framework
            using System;

            // Объявляем, что мы работаем в пространстве имен SampleProgram
            namespace SampleProgram
            {
              /// 
              /// Класс Client содержит информацию о кленте - его имя и баланс счета
              ///  
              class Client
              {
                /// 
                /// Эта переменная хранит имя клиента
                /// 
                private string _name;

                /// 
                /// Эта переменная хранит баланс счета клиента
                /// 
                private int _balance;

                /// 
                /// Это свойство используется для доступа к имени клиента.
                /// Принято все переменные класса закрывать для доступа извне
                /// и предоставлять доступ к ним через свойства, чтобы контролировать
                /// доступ.
                /// 
                public string Name
                {
                  // Здесь мы определяем код, который будет использован для
                  // получения значения свойства
                  get
                  {
                    return _name;
                  }

                  // Этот код служит для присвоения свойству нового значения
                  // Параметр value здесь представляет новое значения свойства
                  set
                  {
                    _name = value;
                  }
                }

                /// 
                /// Это свойство служит для доступа к счету клиента. Доступ на 
                /// запись для него закрыт, чтобы нельзя было извне класса 
                /// в обход его методов изменить сумму на счету клиента.
                /// 
                public int Balance
                {
                  get
                  {
                    return _balance;
                  }
                }

                /// 
                /// Здесь мы определяем констуктор - метод, используемый
                /// для создания нового объекта данного класса.
                /// 
                /// Параметр name задает имя для нового клиента
                /// Параметр initialCash задает начальную сумму, которая будет на его счету
                public Client( string name, int initialCash )
                {
                  // Задаем имя клиента через свойство
                  Name = name;
                  
                  // Задаем начальный счет через непосредственный доступ к переменной
                  _balance = initialCash;
                }

                /// 
                /// Этот метод перечисляет деньги на счет клиента
                /// 
                /// Этот параметр задает сумму, которая будет перечислена
                /// Этот параметр задает идентификатор транзакции для проверки подлинности перечисления
                public void AddMoney( int amount, int transactionID )
                {
                  // Если транзакция верна
                  if (Transaction.CheckID(transactionID))
                  // Перечисляем деньги
                    _balance += amount;
                  else
                  // Иначе генерируем исключение
                    throw new Exception("Wrong transaction ID");
                }

                /// 
                /// Этот метод переопределяет стандартный метод ToString, определенный в классе
                /// System.Object. По умолчанию этот метод выводит класс объекта.
                /// 
                /// Метод возвращает стороковое представление объекта
                public override string ToString()
                {
                  return Name + " (" + Balance + ")";
                }
              }

              /// 
              /// Класс транзакции. В нашем примере он будет лишь проверять правильность идентификатора транзакции
              /// 
              public class Transaction
              {
                /// 
                /// Этот метод проверяет, верный ли идентификатор ему передан
                /// 
                /// Идентификатор для проверки
                /// Возвращает true, если идентификатор верен и false если нет
                public static bool CheckID( int id )
                {
                  // В нашем примере идентификатор считается правильным, если он не делится на 2
                  return id % 2 != 0;
                }
              }

              /// 
              /// Класс приложения - класс, предстваляющий основное направление выполнения программы.
              /// В нем определена точка входа
              /// 
              public class Application
              {
                /// 
                /// Точка входа в программу
                /// 
                public static void Main()
                {
                  // Создаем нового клиента по имени Johny Smith и двумястами долларами на счету
                  Client client = new Client("Johnny Smith", 200);

                  // Выводим начальное состояние клиента
                  // Благодаря перегрузке метода ToString, мы получим информацию о клиенте
                  Console.WriteLine("Начальное состояние:  " + client);

                  // Следующий код мы заключаем в try...catch блок, так как в нем могут 
                  // возникнуть исключения.
                  try
                  {
                    client.AddMoney(100, 0);
                    client.AddMoney(140, 1);
                  }
                  // Этот блок будет вызван, если возникнет исключение
                  catch (Exception)
                  {
                    Console.WriteLine("Перечисление денег было отклонено");
                  }
                  // Этот код будет вызван в любом случае либо по отработке блока catch, либо блока try
                  finally
                  {
                    Console.WriteLine("Конечное состояние клиента: " + client);
                  }
                }
              }
            }        
        

Приведенная программа демонстрирует различные аспекты C#. Что касается логики, она просто создает объект класса Client и пытается изменить состояние его счета. Первый раз удачно, второй - нет. Программа выводит на экран следющий текст:

            Начальное состояние:  Johnny Smith (200)
            Перечисление денег было отклонено
            Конечное состояние клиента: Johnny Smith (200)
       

<< Предыдущая Следующая >>

Контакт Реклама на сайте Спонсорам Веб мастерам

Лицензионное соглашение - © 2000-2012 dotSITE
Хостинг .NET предоставлен PARKING.RU
Поддержку сайта осуществляет Murano Software Inc., Offshore software development