Bird
Raised Fist0
C Sharp (C#)programming~10 mins

Params keyword for variable arguments in C Sharp (C#) - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to declare a method that accepts a variable number of integer arguments using the correct keyword.

C Sharp (C#)
public void PrintNumbers([1] int[] numbers) {
    foreach (int num in numbers) {
        Console.WriteLine(num);
    }
}
Drag options to blanks, or click blank then click option'
Aparams
Bargs
Cvariable
Dvarargs
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'varargs' which is not a C# keyword.
Forgetting to use any keyword and just writing 'int[] numbers'.
2fill in blank
medium

Complete the method call to pass multiple integers to the method using the params keyword.

C Sharp (C#)
PrintNumbers([1]);
Drag options to blanks, or click blank then click option'
A1, 2, 3
Bnew int[] {1, 2, 3}
C{1, 2, 3}
Dint[] {1, 2, 3}
Attempts:
3 left
💡 Hint
Common Mistakes
Passing an array explicitly when not needed.
Using curly braces without 'new int[]'.
3fill in blank
hard

Fix the error in the method declaration to correctly use the params keyword for variable arguments.

C Sharp (C#)
public void SumNumbers([1] int[] numbers) {
    int sum = 0;
    foreach (int num in numbers) {
        sum += num;
    }
    Console.WriteLine(sum);
}
Drag options to blanks, or click blank then click option'
Aout
Bparams
Cref
Din
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'ref' or 'out' instead of 'params'.
Placing the keyword after the parameter name.
4fill in blank
hard

Fill both blanks to declare a method that sums variable integer arguments and returns the total.

C Sharp (C#)
public int SumAll([1] int[] numbers) {
    int total = 0;
    foreach (int num in [2]) {
        total += num;
    }
    return total;
}
Drag options to blanks, or click blank then click option'
Aparams
Bnumbers
Cnums
Dargs
Attempts:
3 left
💡 Hint
Common Mistakes
Using a different variable name in the loop than the parameter name.
Forgetting the 'params' keyword.
5fill in blank
hard

Fill all three blanks to declare a method that prints each string argument passed using the params keyword.

C Sharp (C#)
public void PrintAll([1] string[] [2]) {
    foreach (string [3] in [2]) {
        Console.WriteLine([3]);
    }
}
Drag options to blanks, or click blank then click option'
Aparams
Bwords
Cword
Dargs
Attempts:
3 left
💡 Hint
Common Mistakes
Using inconsistent variable names between parameter and loop.
Omitting the 'params' keyword.

Practice

(1/5)
1. What does the params keyword do in a C# method?
easy
A. Makes the method run faster by optimizing loops.
B. Allows the method to accept a variable number of arguments as an array.
C. Declares a method as asynchronous.
D. Specifies that the method returns multiple values.

Solution

  1. Step 1: Understand the purpose of params

    The params keyword allows a method to accept zero or more arguments as a single array parameter.
  2. Step 2: Compare with other options

    Options B, C, and D describe unrelated features: performance, async methods, and multiple return values, which params does not do.
  3. Final Answer:

    Allows the method to accept a variable number of arguments as an array. -> Option B
  4. Quick Check:

    params = variable arguments [OK]
Hint: Remember: params means flexible number of inputs [OK]
Common Mistakes:
  • Thinking params changes method speed
  • Confusing params with async keyword
  • Believing params allows multiple return values
2. Which of the following is the correct syntax to declare a method using params in C#?
easy
A. public void PrintNumbers(params int numbers[]) { }
B. public void PrintNumbers(int params[] numbers) { }
C. public void PrintNumbers(int[] params numbers) { }
D. public void PrintNumbers(params int[] numbers) { }

Solution

  1. Step 1: Recall correct params syntax

    The params keyword comes before the array type and parameter name: params int[] numbers.
  2. Step 2: Identify incorrect placements

    Options B, C, and D place params incorrectly or use invalid syntax for arrays in C#.
  3. Final Answer:

    public void PrintNumbers(params int[] numbers) { } -> Option D
  4. Quick Check:

    params before array type [OK]
Hint: Put params right before the array type [OK]
Common Mistakes:
  • Placing params after the type or variable name
  • Using square brackets incorrectly
  • Confusing params with pointer syntax
3. What is the output of this C# code?
public class Program {
  public static void PrintAll(params string[] words) {
    foreach (var word in words) {
      Console.Write(word + " ");
    }
  }
  public static void Main() {
    PrintAll("hello", "world", "!");
  }
}
medium
A. hello world !
B. hello world!
C. hello, world, !
D. Compilation error

Solution

  1. Step 1: Understand method call with params

    The method PrintAll accepts any number of strings as an array and prints each with a space after it.
  2. Step 2: Trace the output

    It prints "hello ", then "world ", then "! ", resulting in "hello world ! " with spaces after each word.
  3. Final Answer:

    hello world ! -> Option A
  4. Quick Check:

    Params prints each argument with space [OK]
Hint: Params passes arguments as array, loop prints each [OK]
Common Mistakes:
  • Missing spaces between words
  • Expecting commas instead of spaces
  • Thinking it causes compile errors
4. Identify the error in this method declaration:
public void Show(params int[] numbers, string label) {
  Console.WriteLine(label);
}
medium
A. The 'params' parameter must be the last parameter in the method.
B. The 'params' keyword cannot be used with arrays.
C. The method must return a value when using 'params'.
D. The 'params' keyword requires the parameter to be optional.

Solution

  1. Step 1: Check parameter order rules for params

    The params parameter must be the last one in the method signature.
  2. Step 2: Identify the error

    Here, params int[] numbers is before string label, which is invalid.
  3. Final Answer:

    The 'params' parameter must be the last parameter in the method. -> Option A
  4. Quick Check:

    params must be last [OK]
Hint: Params must always be last parameter [OK]
Common Mistakes:
  • Placing params before other parameters
  • Thinking params can be anywhere
  • Confusing params with optional parameters
5. You want to create a method SumAll that sums any number of integers passed to it. Which of these method declarations correctly uses params and returns the sum?
hard
A. public int SumAll(params int numbers) { return numbers.Length; }
B. public int SumAll(int[] numbers, params int n) { return numbers.Sum() + n; }
C. public int SumAll(params int[] numbers) { int sum = 0; foreach(var n in numbers) sum += n; return sum; }
D. public int SumAll(params int[] numbers) { return numbers[0]; }

Solution

  1. Step 1: Check correct use of params and summing logic

    public int SumAll(params int[] numbers) { int sum = 0; foreach(var n in numbers) sum += n; return sum; } correctly declares params int[] numbers and sums all elements in a loop.
  2. Step 2: Evaluate other options

    public int SumAll(int[] numbers, params int n) { return numbers.Sum() + n; } has invalid params int n after array; public int SumAll(params int numbers) { return numbers.Length; } uses params int numbers which is invalid; public int SumAll(params int[] numbers) { return numbers[0]; } returns only first element, not sum.
  3. Final Answer:

    public int SumAll(params int[] numbers) { int sum = 0; foreach(var n in numbers) sum += n; return sum; } -> Option C
  4. Quick Check:

    Params array summed with loop [OK]
Hint: Params must be array; sum with loop or LINQ [OK]
Common Mistakes:
  • Using params with single int instead of array
  • Placing params parameter incorrectly
  • Returning only first element instead of sum
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard