Основы языка C# 2005. Евсеева О.Н - 88 стр.

UptoLike

Составители: 

92
/// </summary>
private void A(out long p2, int p1)
{
p2 = (long) Math.Pow(p1, 3);
Console.WriteLine("Метод A-1");
}
private void A(out long p2, params int[ ] p)
{
p2 = 0;
for (int i = 0; i < p.Length; i++) p2 += (long) Math.Pow(p[i], 3);
Console.WriteLine("Метод A-2");
}
private void A(out double p2, double p1)
{
p2 = Math.Pow(p1, 3);
Console.WriteLine("Метод A-3");
}
private void A(out double p2, params double[ ] p)
{
p2 = 0;
for (int i = 0; i < p.Length; i++) p2 += Math.Pow(p[i], 3);
Console.WriteLine("Метод A-4");
}
/// <summary>
/// Функция с побочным эффектом
/// </summary>
/// <param name="a"> Увеличивается на 1</param>
/// <returns> значение a на входе</returns>
private int f(ref int a)
{
return a++;
}
Четыре перегруженных метода с именем A и метод f будут
использоваться при объяснении перегрузки и побочного эффекта. Сейчас
проанализируем только их заголовки. Все методы закрыты, поскольку
объявлены без модификатора доступа. Перегруженные методы с именем A
являются процедурами, метод fфункцией. Все четыре перегруженных метода
имеют разную сигнатуру. Хотя имена и число аргументов у всех методов
одинаковы, но типы и ключевые слова, предшествующие аргументам,
различны. Первый аргумент у всех четырех перегруженных методов