C# Compiler Error
CS0226 – An __arglist expression may only appear inside of a call or new expression.
Reason for the Error
You will receive this error in your C# program when you have used the keyword __arglist outside of the method call or new expression.
__arglist in C# is used to send parameters to a method. We usually send parameters to a function in C# by specifying the parameters in the method declaration and definition. If we have to pass a new set of arguments, we will have to either modify the method definition or use method overloading.
For example, try to compile the below code snippet.
using System; namespace DeveloperPubNamespace { class Program { public static void Main() { __arglist(1, 2, 3, 4, "Senthil Balu"); } } }
This program will result with the error code CS0226 because we are using __arglist as if we are calling a method. Usually, we need to call the __arglist inside a method call.
Error CS0226 An __arglist expression may only appear inside of a call or new expression ConsoleApp3 C:\Users\SenthilBalu\source\repos\ConsoleApp3\ConsoleApp3\Program.cs 14 Active
Solution
To fix the error code CS0226 in C#, you’ll need to ensure that you use __arglist inside the method call or new expression as shown below.
using System; namespace DeveloperPubNamespace { class Program { public static int Length(__arglist) { ArgIterator iterator = new ArgIterator(__arglist); return iterator.GetRemainingCount(); } public static void Main() { int result = Length(__arglist(1, 2, 3, 4, "Senthil Balu")); Console.WriteLine(result); } } }