Csharp/C Sharp/Language Basics/params
Содержание
Check the array length for params parameters
using System;
public class Employee {
public Employee(params string[] _name) {
switch (_name.Length) {
case 1:
name = _name[0];
break;
case 2:
name = _name[0] + " " + _name[1];
break;
default:
break;
}
}
public void GetName() {
Console.WriteLine(name);
}
private string name = "";
}
public class Employeenel {
public static void Main() {
Employee bob = new Employee("Bob", "Wilson");
bob.GetName();
}
}
Normal parameter and params parameters
using System;
public class Starter {
public static void Main() {
Names("F", "F", "B", "A");
Names("F", 1234, 5678, 9876, 4561);
Names("F", "C", "D");
}
public static void Names(string company,params string[] employees) {
Console.WriteLine("{0} employees: ",company);
foreach (string employee in employees) {
Console.WriteLine(" {0}", employee);
}
}
public static void Names(string company,params int[] emplid) {
Console.WriteLine("{0} employees: ",company);
foreach (int employee in emplid) {
Console.WriteLine(" {0}", employee);
}
}
public static void Names(string company,string empl1, string empl2) {
Console.WriteLine("{0} employees: ",company);
Console.WriteLine(" {0}", empl1);
Console.WriteLine(" {0}", empl2);
}
}
Params Array
using System;
using System.Collections.Generic;
using System.Text;
class Util {
public static int Sum(params int[] paramList) {
if (paramList == null) {
throw new ArgumentException("Util.Sum: null parameter list");
}
if (paramList.Length == 0) {
throw new ArgumentException("Util.Sum: empty parameter list");
}
int sumTotal = 0;
foreach (int i in paramList) {
sumTotal += i;
}
return sumTotal;
}
}
class Program {
static void Entrance() {
Console.WriteLine(Util.Sum(10, 9, 8, 7, 6, 5, 4, 3, 2, 1));
}
static void Main() {
try {
Entrance();
} catch (Exception ex) {
Console.WriteLine("Exception: {0}", ex.Message);
}
}
}
Use params to mark parameter
using System;
class ParamsSample {
static void PrintStrings(params String[] StringArray) {
for (int i = 0; i < StringArray.Length; i++)
Console.Write("{0} ", StringArray[i]);
Console.WriteLine();
}
static void Main(String[] args) {
String names = "K";
PrintStrings("A");
PrintStrings(names, "R", "S");
PrintStrings("R", "E", "C", "S");
}
}
use the params feature to write functions which accept a variable number of arguments
using System;
public class MainClass {
public static void Main(string[] args) {
int nSum;
Console.WriteLine("{0}", SumArgs(out nSum, 1, 2, 3));
int[] nArray = { 4, 5, 6 };
Console.WriteLine("{0}", SumArgs(out nSum, nArray));
}
public static int SumArgs(out int nSum, params int[] list) {
nSum = 0;
foreach (int n in list) {
nSum += n;
}
return nSum;
}
}