Отправляет email-рассылки с помощью сервиса Sendsay

Финансы. Инструкция

  Все выпуски  

Уроки по C# и .NET.


Информационный Канал Subscribe.Ru

C# и .NET. Уроки с сайта http://progs.biz

Рассылка №12

Основы C#. Урок 25. Передача параметров переменой длины.
Основы C#. Урок 26. Строки (класс System.String).

Полные версии уроков (с картинками) можно найти по адресам
Урок 25. Передача параметров переменой длины.
Урок 26. Строки (класс System.String).

Основы C#. Урок 25. Передача параметров переменой длины

В функцию можно передавать заранее неизвестное число параметров. Например, функция может складывать некоторое заранее неизвестное количество чисел и возвращать их сумму.

Вот конкретный пример реализации такой функции:

using System;
class MyClass{
public static int Sum(params int[] args)
        {
            int res=0;
            for(int i=0; i<args.GetLength(0); i++){
                res+=args[i];
            }
            return res;
        }
}
namespace test
{
    class Test
    {

        public static void Main()
        {
            System.Console.WriteLine(MyClass.Sum(1, 3));
            System.Console.WriteLine(MyClass.Sum(12));
            System.Console.WriteLine(MyClass.Sum(-1, 9, 2));
        }
    }
}

Здесь в классе MyClass мы объявляем статческую фунцкию Sum, в которую мы можем передавать переменное число параметров. Для этого в круглых скобках после имени функции мы пишем конструкцию

...
public static int Sum(params int[] args)
 ...

Синтаксис у нее такой - сначала пишем ключевое слово params, затем - тип параметров (int в данном случае), после которого ставим пустые квадратные скобки и в конце этой конструкции пишем произвольное имя параметра (в нашем примере он назван args).

В классе test мы испытываем наш класс MyClass, а именно, вызываем функцию Sum с разным числом параметров. Все работает как надо и наша программа покажет на экране 4, 12 и 10.

Наверх

Основы C#. Урок 26. Строки (класс System.String)

Строки в C# - это экземпляры класса System.String. Вообще говоря в C# есть тип string, но класс System.String яляется более продвинутым, так что его использование часто оказывается более оправданным и простым. Этот класс имеет множество методов и свойств, некоторые из которых перечислены ниже:

Свойство Length. Возвращает длину строки. Пример использования:

            String s="qqq";
            int k=s.Length; //В k запишется 3

Compare. Статический метод, сравнивающий две строки. Возвращает 0, есть строки равны, отрицательное значение, если первая строка меньше второй и положительное значение, если первая строки больше второй (больше и меньше в алфавитном смысле, разумеется). Пример использования:

namespace test
{
    class Test
    {

        public static void Main()
        {
            String s1="arbour", s2="ace", s3="azote";
            System.Console.WriteLine(String.Compare(s1, s1)); //Выдаст 0, т. к. "arbour" равно "arbour".
            System.Console.WriteLine(String.Compare(s1, s2)); //Выдаст -1, т. к. "arbour" меньше "ace".
            System.Console.WriteLine(String.Compare(s1, s3)); //Выдаст 1, т. к. "arbour" больше "azote".
        }
    }
}

Equals. Метод, возвращает true, если строки равны, false - если не равны. Может быть как статическим, так и не статическим. Пример использования:

            String s1="qqq", s2="www";
            System.Console.WriteLine(String.Equals(s1, s2).ToString());
            //Статический метод
            System.Console.WriteLine(System.Console.WriteLine(String.Equals(s1, s2).ToString());
            //Не статический метод
            System.Console.WriteLine(s1.Equals(s2).ToString());.ToString());

Метод Substring. Поволяет извлечь из строки подстроку. Пример использования:

            String s1="abcdefg", s2;
            s2=s1.Substring(3, 2);
            System.Console.WriteLine(s2); //Напечатается "de"

Параметры тут такие: первый - с какого места извлекаем (нумерация с нуля) и второй - сколько символов извлекаем.

Метод Insert. Вставляет в строку другую строку. Пример использования:

            String s1="abcdefg", s2;
            s2=s1.Insert(1, "xyz");
            System.Console.WriteLine(s2); //Напечатается "axyzbcdefg"

Первый параметр тут - это куда вставляем (нумерация, как всегда, с нуля), второй - что за строчку вставляем.

Метод IndexOf. Позволяет найти в строке подстроку. Пример использования:

            String s1="abcabcab", s2="bc", s3="zzz";
            System.Console.WriteLine(s1.IndexOf(s2)); //Напечатается 1
            System.Console.WriteLine(s1.IndexOf(s3)); //Напечатается -1

Этот метод возвращает номер позиции, на котором в строке находится передаваемая в качестве параметра подстрока. Если такой построки нет, то возвращается -1.

Метод Replace. Производит замену в строке. Пример использования:

            String s1="abcabcab", s2="bc", s3;
            s3=s1.Replace(s2, "q");
            System.Console.WriteLine(s3); //Напечатается aqaqab

Методы EndWith и StartsWith. Проверяют, не завершается ли или не начинается ли строка с или на заданную строку соответственно. Пример использования:

            String s1="arbour";
            if(s1.StartsWith("ar"))
                System.Console.WriteLine("Строка начинается на \"ar\"");
            else
                System.Console.WriteLine("Строка не начинается на \"ar\"");

Методы ToUpper и ToLower переводят строку в верхний или нижний регистр соответственно. Пример использования:

            String s1="aRbRur";
            s1=s1.ToLower();

Методы Trim, TrimEnds и TrimStart. Удаляют пробельные символы из начала и конца строки (Trim), только с конца строки (TrimEnds) и только с начала строки (TrimStart). Пример использваония:

            String s1="  ar  brur ";
            System.Console.Write(s1.Trim());

Заметьте, что при изменении строки фактически старый экземпляр класса System.String уничтожается, и создается новый с там же именем и измененным содержанием. Это означает, что при интенсивной работе со строками программа может работеть не так быстро, как хотелось бы. Если мы не хотим, что бы каждый раз создавался новый экземпляр класса, то вместо класса System.String надо использовать класс StringBuilder, котрый мы рассмотрим на следующем уроке.

Наверх

Рассылки сайта progs.biz:

Рассылки Subscribe.Ru
Уроки по C++ Builder

Уроки по программированию на C++ Builder. Библиотека VCL, создание собственных компонентов, работа с базами данных, примеры, FAQ. Уроки разбиты на серии. Каждая серия независима от других.


Copyright Алексеев Игорь, 2002

Copyright сайт progs.biz, 2002



http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное