При вызове метода ему можно передать одно или несколько значений. Значение, передаваемое методу, называется аргументом. А переменная, получающая аргумент, называется формальным параметром, или просто параметром. Параметры объявляются в скобках после имени метода.
//Простой пример применения параметра.
using System;
class ChkNum
{
//Возвратить значение true, если значение
//параметра x окажется простым числом.
public bool IsPrime(int x)
{
if (x <= 1) return false;
for (int i = 2; i <= x / i; i++)
if ((x % i) == 0) return false;
return true;
}
}
class ParmDemo
{
static void Main()
{
ChkNum ob = new ChkNum();
for (int i = 2; i < 10; i++)
if (ob.IsPrime(i)) Console.WriteLine(i + " простое число.");
else Console.WriteLine(i + " непростое число.");
}
}
//Построить метод, принимающий 2 аргумента
//и возврващающий наименьший общий делитель двух его аргументов.
using System;
class ChkNum
{
//Возвратить значение true, если значение параметра х окажется простым числом.
public bool IsPrime(int x)
{
if (x <= 1) return false;
for (int i = 2; i <= x / i; i++)
if ((x % i) == 0) return false;
return true;
}
//Возвратить наименьший общий множитель.
public int LeastComFactor(int a, int b)
|
|
{
int max;
if (IsPrime(a) || IsPrime(b)) return 1;
max = a < b? a: b;
for (int i = 2; i <= max / 2; i++)
if (((a % i) == 0) && ((b % i) == 0)) return i;
return 1;
}
}
class ParmDemo
{
static void Main()
{
ChkNum ob = new ChkNum();
int a, b;
for (int i = 2; i < 10; i++)
if (ob.IsPrime(i)) Console.WriteLine(i + " простое число.");
else Console.WriteLine(i + " непростое число.");
a = 7;
b = 8;
Console.WriteLine("Наименьший общий множитель чисел "
+ a + " и " + b + " равен " + ob.LeastComFactor(a, b));
a = 100;
b = 8;
Console.WriteLine("Наименьший общий множитель чисел "
+ a + " и " + b + " равен " + ob.LeastComFactor(a, b));
a = 100;
b = 75;
Console.WriteLine("Наименьший общий множитель чисел "
+ a + " и " + b + " равен " + ob.LeastComFactor(a, b));
}
}
Если в методе используется несколько параметров, то для каждого из них указывается свой тип, отличающийся от других. Например, приведенный ниже код является вполне допустимым.
int MyMeth(int a, double b, float с) {
//...
// В классе Building вычислить максимальное количество жильцов в здании,
// исходя из определенной величины минимальной площади на одного человека.
using System;
class Building
{
public int Area;
//Возвратить максимальное количество человек, занимающих здание,
//исходя из заданной минимальной площади на одного человека.
public int MaxOccupant(int minArea)
{
return Area / minArea;
}
}
//Использовать метод MaxOccupant().
class BuildingDemo
{
static void Main()
{
Building house = new Building();
Building office = new Building();
//Присвоить значения полям в обьекте house и office.
house.Area = 2500;
office.Area = 4200;
Console.WriteLine("Максимальное количество человек в доме, \n"
+ "если на каждого должно приходиться " + 300 + " кв. футов: "
+ house.MaxOccupant(300));
Console.WriteLine("Максимальгое количество человек в учреждении, \n"
+ "если на каждого должно приходится " + 300 + " кв. футов: " + office.MaxOccupant(300));
}
}