Decompose ob = new Decompose; int i; double f;
i = ob.GetParts(10.125, out f) ;
Console.WriteLine("Целая часть числа равна " + i);
Console.WriteLine("Дробная часть числа равна " + f);
}
}
Выполнение этой программы дает следующий результат.
Целая часть числа равна 10 Дробная часть числа равна 0.125
МетодGet Parts возвращает два фрагмента информации. Во-первых, целую часть исходного числового значения переменной п обычным образом с помощью оператораreturn.И во-вторых, дробную часть этого значения посредством параметраf гастипаout.Как показывает данный пример, используя модификатор параметраout,можно организовать возврат двух значений из одного и того же метода.
Разумеется, никаких ограничений на применение параметровoutв одном методе не существует. С их помощью из метода можно возвратить сколько угодно фрагментов информации. Рассмотрим пример применения двух параметровout.В этом примере программы методHasComFactor выполняет две функции. Во-первых, он определяет общий множитель (кроме 1) для двух целых чисел, возвращая логическое значениеtrue,если у них имеется общий множитель, а иначе — логическое значениеfalse.И во-вторых,.он возвращает посредством параметров типаoutнаименьший и наибольший общий множитель двух чисел, если таковые обнаруживаются.
// Использовать два параметра типа out. using System; class Num {
/* Определить, имеется ли у числовых значений переменных х и v общий множитель. Если имеется, то * возвратить наименьший и наибольший множители посредством параметров типа out. */ public bool HasComFactor(int x, int y,
out int least, out int greatest) {
int i;
int max = x < у ? x : y; bool first = true;
least = 1; greatest = 1;
// Найти наименьший и наибольший общий множитель. for(i=2; i <= max/2 + 1; i++) {
if( ((y%i)==0) & ((x%i)==0) ) {
if (first) { least = i; first = false;
}
greatest = i;
}
}
if(least != 1) return true; else return false;
}
}
class DemoOut {
static void Main {
Num ob = new Num; int lcf, gcf;
if(ob.HasComFactor(231, 105, out lcf, out gcf)) {
Console.WriteLine("Наименьший общий множитель " +
"чисел 231 и 105 равен " + lcf) ;
Console.WriteLine("Наибольший общий множитель " +
"чисел 231 и 105 равен " + gcf);
}
else
Console.WriteLine("Общий множитель у чисел 35 и 49 отсутствует.");
if(ob.HasComFactor(35, 51, out lcf, out gcf)) {
Console.WriteLine("Наименьший общий множитель " +
"чисел 35 и 51 равен " + lcf);
Console.WriteLine("Наибольший общий множитель " +
"чисел 35 и 51 равен " + gcf);
}
else
Console.WriteLine("Общий множитель у чисел 35 и 51 отсутствует.");
}
}