Для того, что бы метод принимал произвольное количество аргументов, применяется ключевое слово params.
Дополнительные параметры не указываются.
Дополнительные параметры не указываются.
Синтаксис:
params тип[] имя_массива
params тип[] имя_массива
Main.cs
using
System;
class
One {
-
public
decimal
Add(
params
decimal
[] args) {
-
decimal
res=0;
-
for
(
int
i=0; i<args.Length; i++) {
-
res+=args[i];
-
}
-
return
res;
-
}
}
class
Two {
-
decimal
val;
-
public
Two(
decimal
arg) {
-
val = arg;
-
}
-
/*неявное (автоматическое) преобразование из типа Two в тип decimal
-
объекты будут складываться, как значения типа decimal*/
-
public
static
implicit
operator
decimal
(Two obj) {
-
return
obj.val;
-
}
}
class
Program {
-
public
static
int
Main() {
-
One O =
new
One();
-
//передача аргументов в виде значений, разделенных запятыми
-
Console.WriteLine(O.Add(1,2,3,4,5,6,7,8,9));
-
decimal
[] arra =
new
decimal
[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
-
//передача аргументов в виде массива
-
Console.WriteLine(O.Add(arra));
-
Two T =
new
Two(5);
-
//передача аргументов в виде преобразованных объектов в тип decimal
-
Console.WriteLine(O.Add(T,T,T,T,T));
-
Console.ReadKey();
-
return
0;
-
}
}
using
System;
class
One {
-
public
decimal
Add(
params
decimal
[] args) {
-
decimal
res=0;
-
for
(
int
i=0; i<args.Length; i++) {
-
res+=args[i];
-
}
-
return
res;
-
}
}
class
Two {
-
decimal
val;
-
public
Two(
decimal
arg) {
-
val = arg;
-
}
-
/*неявное (автоматическое) преобразование из типа Two в тип decimal
-
объекты будут складываться, как значения типа decimal*/
-
public
static
implicit
operator
decimal
(Two obj) {
-
return
obj.val;
-
}
}
class
Program {
-
public
static
int
Main() {
-
One O =
new
One();
-
//передача аргументов в виде значений, разделенных запятыми
-
Console.WriteLine(O.Add(1,2,3,4,5,6,7,8,9));
-
decimal
[] arra =
new
decimal
[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
-
//передача аргументов в виде массива
-
Console.WriteLine(O.Add(arra));
-
Two T =
new
Two(5);
-
//передача аргументов в виде преобразованных объектов в тип decimal
-
Console.WriteLine(O.Add(T,T,T,T,T));
-
Console.ReadKey();
-
return
0;
-
}
}
45
45
25
45
25