using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Configs;
using BenchmarkDotNet.Order;
using BenchmarkDotNet.Running;
BenchmarkRunner.Run<ParameterPassingBenchmark>();
Orderer(SummaryOrderPolicy.FastestToSlowest, MethodOrderPolicy.Declared),
GroupBenchmarksBy(BenchmarkLogicalGroupRule.ByCategory),
MarkdownExporterAttribute.GitHub]
public class ParameterPassingBenchmark
private const int Param = 10;
[BenchmarkCategory("ThreeParams")]
public int ThreeParameters()
return Compute(Param, Param, Param);
[BenchmarkCategory("ThreeParams")]
public int ThreeParametersByClass()
var parameters = new Parameters3Class { Param1 = Param, Param2 = Param, Param3 = Param };
return Compute(parameters);
[BenchmarkCategory("ThreeParams")]
public int ThreeParametersBySealedClass()
var parameters = new Parameters3SealedClass { Param1 = Param, Param2 = Param, Param3 = Param };
return Compute(parameters);
[BenchmarkCategory("ThreeParams")]
public int ThreeParametersByRecord()
var parameters = new Parameters3Record(Param, Param, Param);
return Compute(parameters);
[BenchmarkCategory("ThreeParams")]
public int ThreeParametersBySealedRecord()
var parameters = new Parameters3SealedRecord(Param, Param, Param);
return Compute(parameters);
[BenchmarkCategory("ThreeParams")]
public int ThreeParametersByStruct()
var parameters = new Parameters3Struct { Param1 = Param, Param2 = Param, Param3 = Param };
return Compute(parameters);
[BenchmarkCategory("ThreeParams")]
public int ThreeParametersByRefStruct()
var parameters = new Parameters3RefStruct { Param1 = Param, Param2 = Param, Param3 = Param };
return Compute(parameters);
[BenchmarkCategory("ThreeParams")]
public int ThreeParametersByReadonlyRefStruct()
var parameters = new Parameters3ReadonlyRefStruct { Param1 = Param, Param2 = Param, Param3 = Param };
return Compute(parameters);
[BenchmarkCategory("ThreeParams")]
public int ThreeParametersByReadonlyStruct()
var parameters = new Parameters3ReadonlyStruct { Param1 = Param, Param2 = Param, Param3 = Param };
return Compute(parameters);
[BenchmarkCategory("ThreeParams")]
public int ThreeParametersByRecordStruct()
var parameters = new Parameters3RecordStruct(Param, Param, Param);
return Compute(parameters);
[BenchmarkCategory("ThreeParams")]
public int ThreeParametersByReadonlyRecordStruct()
var parameters = new Parameters3ReadonlyRecordStruct(Param, Param, Param);
return Compute(parameters);
[BenchmarkCategory("FourParams")]
public int FourParameters()
return Compute(Param, Param, Param, Param);
[BenchmarkCategory("FourParams")]
public int FourParametersByClass()
var parameters = new Parameters4Class { Param1 = Param, Param2 = Param, Param3 = Param, Param4 = Param };
return Compute(parameters);
[BenchmarkCategory("FourParams")]
public int FourParametersBySealedClass()
var parameters = new Parameters4SealedClass { Param1 = Param, Param2 = Param, Param3 = Param, Param4 = Param };
return Compute(parameters);
[BenchmarkCategory("FourParams")]
public int FourParametersByRecord()
var parameters = new Parameters4Record(Param, Param, Param, Param);
return Compute(parameters);
[BenchmarkCategory("FourParams")]
public int FourParametersBySealedRecord()
var parameters = new Parameters4SealedRecord(Param, Param, Param, Param);
return Compute(parameters);
[BenchmarkCategory("FourParams")]
public int FourParametersByStruct()
var parameters = new Parameters4Struct { Param1 = Param, Param2 = Param, Param3 = Param, Param4 = Param };
return Compute(parameters);
[BenchmarkCategory("FourParams")]
public int FourParametersByRefStruct()
var parameters = new Parameters4RefStruct { Param1 = Param, Param2 = Param, Param3 = Param, Param4 = Param };
return Compute(parameters);
[BenchmarkCategory("FourParams")]
public int FourParametersByReadonlyRefStruct()
var parameters = new Parameters4ReadonlyRefStruct { Param1 = Param, Param2 = Param, Param3 = Param, Param4 = Param };
return Compute(parameters);
[BenchmarkCategory("FourParams")]
public int FourParametersByReadonlyStruct()
var parameters = new Parameters4ReadonlyStruct { Param1 = Param, Param2 = Param, Param3 = Param, Param4 = Param };
return Compute(parameters);
[BenchmarkCategory("FourParams")]
public int FourParametersByRecordStruct()
var parameters = new Parameters4RecordStruct(Param, Param, Param, Param);
return Compute(parameters);
[BenchmarkCategory("FourParams")]
public int FourParametersByReadonlyRecordStruct()
var parameters = new Parameters4ReadonlyRecordStruct(Param, Param, Param, Param);
return Compute(parameters);
[BenchmarkCategory("FiveParams")]
public int FiveParameters()
return Compute(Param, Param, Param, Param, Param);
[BenchmarkCategory("FiveParams")]
public int FiveParametersByClass()
var parameters = new Parameters5Class { Param1 = Param, Param2 = Param, Param3 = Param, Param4 = Param, Param5 = Param };
return Compute(parameters);
[BenchmarkCategory("FiveParams")]
public int FiveParametersBySealedClass()
var parameters = new Parameters5SealedClass { Param1 = Param, Param2 = Param, Param3 = Param, Param4 = Param, Param5 = Param };
return Compute(parameters);
[BenchmarkCategory("FiveParams")]
public int FiveParametersByRecord()
var parameters = new Parameters5Record(Param, Param, Param, Param, Param);
return Compute(parameters);
[BenchmarkCategory("FiveParams")]
public int FiveParametersBySealedRecord()
var parameters = new Parameters5SealedRecord(Param, Param, Param, Param, Param);
return Compute(parameters);
[BenchmarkCategory("FiveParams")]
public int FiveParametersByStruct()
var parameters = new Parameters5Struct { Param1 = Param, Param2 = Param, Param3 = Param, Param4 = Param, Param5 = Param };
return Compute(parameters);
[BenchmarkCategory("FiveParams")]
public int FiveParametersByRefStruct()
var parameters = new Parameters5RefStruct { Param1 = Param, Param2 = Param, Param3 = Param, Param4 = Param, Param5 = Param };
return Compute(parameters);
[BenchmarkCategory("FiveParams")]
public int FiveParametersByReadonlyRefStruct()
var parameters = new Parameters5ReadonlyRefStruct { Param1 = Param, Param2 = Param, Param3 = Param, Param4 = Param, Param5 = Param };
return Compute(parameters);
[BenchmarkCategory("FiveParams")]
public int FiveParametersByReadonlyStruct()
var parameters = new Parameters5ReadonlyStruct { Param1 = Param, Param2 = Param, Param3 = Param, Param4 = Param, Param5 = Param };
return Compute(parameters);
[BenchmarkCategory("FiveParams")]
public int FiveParametersByRecordStruct()
var parameters = new Parameters5RecordStruct(Param, Param, Param, Param, Param);
return Compute(parameters);
[BenchmarkCategory("FiveParams")]
public int FiveParametersByReadonlyRecordStruct()
var parameters = new Parameters5ReadonlyRecordStruct(Param, Param, Param, Param, Param);
return Compute(parameters);
[BenchmarkCategory("SixParams")]
public int SixParameters()
return Compute(Param, Param, Param, Param, Param, Param);
[BenchmarkCategory("SixParams")]
public int SixParametersByClass()
var parameters = new Parameters6Class { Param1 = Param, Param2 = Param, Param3 = Param, Param4 = Param, Param5 = Param, Param6 = Param };
return Compute(parameters);
[BenchmarkCategory("SixParams")]
public int SixParametersBySealedClass()
var parameters = new Parameters6SealedClass { Param1 = Param, Param2 = Param, Param3 = Param, Param4 = Param, Param5 = Param, Param6 = Param };
return Compute(parameters);
[BenchmarkCategory("SixParams")]
public int SixParametersByRecord()
var parameters = new Parameters6Record(Param, Param, Param, Param, Param, Param);
return Compute(parameters);
[BenchmarkCategory("SixParams")]
public int SixParametersBySealedRecord()
var parameters = new Parameters6SealedRecord(Param, Param, Param, Param, Param, Param);
return Compute(parameters);
[BenchmarkCategory("SixParams")]
public int SixParametersByStruct()
var parameters = new Parameters6Struct { Param1 = Param, Param2 = Param, Param3 = Param, Param4 = Param, Param5 = Param, Param6 = Param };
return Compute(parameters);
[BenchmarkCategory("SixParams")]
public int SixParametersByRefStruct()
var parameters = new Parameters6RefStruct { Param1 = Param, Param2 = Param, Param3 = Param, Param4 = Param, Param5 = Param, Param6 = Param };
return Compute(parameters);
[BenchmarkCategory("SixParams")]
public int SixParametersByReadonlyRefStruct()
var parameters = new Parameters6ReadonlyRefStruct { Param1 = Param, Param2 = Param, Param3 = Param, Param4 = Param, Param5 = Param, Param6 = Param };
return Compute(parameters);
[BenchmarkCategory("SixParams")]
public int SixParametersByReadonlyStruct()
var parameters = new Parameters6ReadonlyStruct { Param1 = Param, Param2 = Param, Param3 = Param, Param4 = Param, Param5 = Param, Param6 = Param };
return Compute(parameters);
[BenchmarkCategory("SixParams")]
public int SixParametersByRecordStruct()
var parameters = new Parameters6RecordStruct(Param, Param, Param, Param, Param, Param);
return Compute(parameters);
[BenchmarkCategory("SixParams")]
public int SixParametersByReadonlyRecordStruct()
var parameters = new Parameters6ReadonlyRecordStruct(Param, Param, Param, Param, Param, Param);
return Compute(parameters);
[BenchmarkCategory("SevenParams")]
public int SevenParameters()
return Compute(Param, Param, Param, Param, Param, Param, Param);
[BenchmarkCategory("SevenParams")]
public int SevenParametersByClass()
var parameters = new Parameters7Class { Param1 = Param, Param2 = Param, Param3 = Param, Param4 = Param, Param5 = Param, Param6 = Param, Param7 = Param };
return Compute(parameters);
[BenchmarkCategory("SevenParams")]
public int SevenParametersBySealedClass()
var parameters = new Parameters7SealedClass { Param1 = Param, Param2 = Param, Param3 = Param, Param4 = Param, Param5 = Param, Param6 = Param, Param7 = Param };
return Compute(parameters);
[BenchmarkCategory("SevenParams")]
public int SevenParametersByRecord()
var parameters = new Parameters7Record(Param, Param, Param, Param, Param, Param, Param);
return Compute(parameters);
[BenchmarkCategory("SevenParams")]
public int SevenParametersBySealedRecord()
var parameters = new Parameters7SealedRecord(Param, Param, Param, Param, Param, Param, Param);
return Compute(parameters);
[BenchmarkCategory("SevenParams")]
public int SevenParametersByStruct()
var parameters = new Parameters7Struct { Param1 = Param, Param2 = Param, Param3 = Param, Param4 = Param, Param5 = Param, Param6 = Param, Param7 = Param };
return Compute(parameters);
[BenchmarkCategory("SevenParams")]
public int SevenParametersByRefStruct()
var parameters = new Parameters7RefStruct { Param1 = Param, Param2 = Param, Param3 = Param, Param4 = Param, Param5 = Param, Param6 = Param, Param7 = Param };
return Compute(parameters);
[BenchmarkCategory("SevenParams")]
public int SevenParametersByReadonlyRefStruct()
var parameters = new Parameters7ReadonlyRefStruct { Param1 = Param, Param2 = Param, Param3 = Param, Param4 = Param, Param5 = Param, Param6 = Param, Param7 = Param };
return Compute(parameters);
[BenchmarkCategory("SevenParams")]
public int SevenParametersByReadonlyStruct()
var parameters = new Parameters7ReadonlyStruct { Param1 = Param, Param2 = Param, Param3 = Param, Param4 = Param, Param5 = Param, Param6 = Param, Param7 = Param };
return Compute(parameters);
[BenchmarkCategory("SevenParams")]
public int SevenParametersByRecordStruct()
var parameters = new Parameters7RecordStruct(Param, Param, Param, Param, Param, Param, Param);
return Compute(parameters);
[BenchmarkCategory("SevenParams")]
public int SevenParametersByReadonlyRecordStruct()
var parameters = new Parameters7ReadonlyRecordStruct(Param, Param, Param, Param, Param, Param, Param);
return Compute(parameters);
[BenchmarkCategory("EightParams")]
public int EightParameters()
return Compute(Param, Param, Param, Param, Param, Param, Param, Param);
[BenchmarkCategory("EightParams")]
public int EightParametersByClass()
var parameters = new Parameters8Class { Param1 = Param, Param2 = Param, Param3 = Param, Param4 = Param, Param5 = Param, Param6 = Param, Param7 = Param, Param8 = Param };
return Compute(parameters);
[BenchmarkCategory("EightParams")]
public int EightParametersBySealedClass()
var parameters = new Parameters8SealedClass { Param1 = Param, Param2 = Param, Param3 = Param, Param4 = Param, Param5 = Param, Param6 = Param, Param7 = Param, Param8 = Param };
return Compute(parameters);
[BenchmarkCategory("EightParams")]
public int EightParametersByRecord()
var parameters = new Parameters8Record(Param, Param, Param, Param, Param, Param, Param, Param);
return Compute(parameters);
[BenchmarkCategory("EightParams")]
public int EightParametersBySealedRecord()
var parameters = new Parameters8SealedRecord(Param, Param, Param, Param, Param, Param, Param, Param);
return Compute(parameters);
[BenchmarkCategory("EightParams")]
public int EightParametersByStruct()
var parameters = new Parameters8Struct { Param1 = Param, Param2 = Param, Param3 = Param, Param4 = Param, Param5 = Param, Param6 = Param, Param7 = Param, Param8 = Param };
return Compute(parameters);
[BenchmarkCategory("EightParams")]
public int EightParametersByRefStruct()
var parameters = new Parameters8RefStruct { Param1 = Param, Param2 = Param, Param3 = Param, Param4 = Param, Param5 = Param, Param6 = Param, Param7 = Param, Param8 = Param };
return Compute(parameters);
[BenchmarkCategory("EightParams")]
public int EightParametersByReadonlyRefStruct()
var parameters = new Parameters8ReadonlyRefStruct { Param1 = Param, Param2 = Param, Param3 = Param, Param4 = Param, Param5 = Param, Param6 = Param, Param7 = Param, Param8 = Param };
return Compute(parameters);
[BenchmarkCategory("EightParams")]
public int EightParametersByReadonlyStruct()
var parameters = new Parameters8ReadonlyStruct { Param1 = Param, Param2 = Param, Param3 = Param, Param4 = Param, Param5 = Param, Param6 = Param, Param7 = Param, Param8 = Param };
return Compute(parameters);
[BenchmarkCategory("EightParams")]
public int EightParametersByRecordStruct()
var parameters = new Parameters8RecordStruct(Param, Param, Param, Param, Param, Param, Param, Param);
return Compute(parameters);
[BenchmarkCategory("EightParams")]
public int EightParametersByReadonlyRecordStruct()
var parameters = new Parameters8ReadonlyRecordStruct(Param, Param, Param, Param, Param, Param, Param, Param);
return Compute(parameters);
private static int Compute(int param1, int param2, int param3)
return param1 + param2 + param3;
private static int Compute(int param1, int param2, int param3, int param4)
return param1 + param2 + param3;
private static int Compute(int param1, int param2, int param3, int param4, int param5)
return param1 + param2 + param3;
private static int Compute(int param1, int param2, int param3, int param4, int param5, int param6)
return param1 + param2 + param3;
private static int Compute(int param1, int param2, int param3, int param4, int param5, int param6, int param7)
return param1 + param2 + param3;
private static int Compute(int param1, int param2, int param3, int param4, int param5, int param6, int param7, int param8)
return param1 + param2 + param3;
private static int Compute(Parameters3Class parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters3SealedClass parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters3Record parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters3SealedRecord parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters3Struct parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters3RefStruct parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters3ReadonlyRefStruct parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters3ReadonlyStruct parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters3RecordStruct parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters3ReadonlyRecordStruct parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters4Class parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters4SealedClass parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters4Record parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters4SealedRecord parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters4Struct parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters4RefStruct parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters4ReadonlyRefStruct parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters4ReadonlyStruct parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters4RecordStruct parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters4ReadonlyRecordStruct parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters5Class parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters5SealedClass parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters5Record parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters5SealedRecord parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters5Struct parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters5RefStruct parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters5ReadonlyRefStruct parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters5ReadonlyStruct parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters5RecordStruct parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters5ReadonlyRecordStruct parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters6Class parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters6SealedClass parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters6Record parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters6SealedRecord parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters6Struct parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters6RefStruct parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters6ReadonlyRefStruct parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters6ReadonlyStruct parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters6RecordStruct parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters6ReadonlyRecordStruct parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters7Class parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters7SealedClass parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters7Record parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters7SealedRecord parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters7Struct parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters7RefStruct parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters7ReadonlyRefStruct parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters7ReadonlyStruct parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters7RecordStruct parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters7ReadonlyRecordStruct parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters8Class parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters8SealedClass parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters8Record parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters8SealedRecord parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters8Struct parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters8RefStruct parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters8ReadonlyRefStruct parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters8ReadonlyStruct parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters8RecordStruct parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
private static int Compute(Parameters8ReadonlyRecordStruct parameters)
return parameters.Param1 + parameters.Param2 + parameters.Param3;
public class Parameters3Class
public int Param1 { get; init; }
public int Param2 { get; init; }
public int Param3 { get; init; }
public sealed class Parameters3SealedClass
public int Param1 { get; init; }
public int Param2 { get; init; }
public int Param3 { get; init; }
public record Parameters3Record(int Param1, int Param2, int Param3);
public sealed record Parameters3SealedRecord(int Param1, int Param2, int Param3);
public struct Parameters3Struct
public int Param1 { get; init; }
public int Param2 { get; init; }
public int Param3 { get; init; }
public ref struct Parameters3RefStruct
public int Param1 { get; init; }
public int Param2 { get; init; }
public int Param3 { get; init; }
public readonly struct Parameters3ReadonlyStruct
public int Param1 { get; init; }
public int Param2 { get; init; }
public int Param3 { get; init; }
public readonly ref struct Parameters3ReadonlyRefStruct
public int Param1 { get; init; }
public int Param2 { get; init; }
public int Param3 { get; init; }
public record struct Parameters3RecordStruct(int Param1, int Param2, int Param3);
public readonly record struct Parameters3ReadonlyRecordStruct(int Param1, int Param2, int Param3);
public class Parameters4Class
public int Param1 { get; init; }
public int Param2 { get; init; }
public int Param3 { get; init; }
public int Param4 { get; init; }
public sealed class Parameters4SealedClass
public int Param1 { get; init; }
public int Param2 { get; init; }
public int Param3 { get; init; }
public int Param4 { get; init; }
public record Parameters4Record(int Param1, int Param2, int Param3, int Param4);
public sealed record Parameters4SealedRecord(int Param1, int Param2, int Param3, int Param4);
public struct Parameters4Struct
public int Param1 { get; init; }
public int Param2 { get; init; }
public int Param3 { get; init; }
public int Param4 { get; init; }
public ref struct Parameters4RefStruct
public int Param1 { get; init; }
public int Param2 { get; init; }
public int Param3 { get; init; }
public int Param4 { get; init; }
public readonly struct Parameters4ReadonlyStruct
public int Param1 { get; init; }
public int Param2 { get; init; }
public int Param3 { get; init; }
public int Param4 { get; init; }
public readonly ref struct Parameters4ReadonlyRefStruct
public int Param1 { get; init; }
public int Param2 { get; init; }
public int Param3 { get; init; }
public int Param4 { get; init; }
public record struct Parameters4RecordStruct(int Param1, int Param2, int Param3, int Param4);
public readonly record struct Parameters4ReadonlyRecordStruct(int Param1, int Param2, int Param3, int Param4);
public class Parameters5Class
public int Param1 { get; init; }
public int Param2 { get; init; }
public int Param3 { get; init; }
public int Param4 { get; init; }
public int Param5 { get; init; }
public sealed class Parameters5SealedClass
public int Param1 { get; init; }
public int Param2 { get; init; }
public int Param3 { get; init; }
public int Param4 { get; init; }
public int Param5 { get; init; }
public record Parameters5Record(int Param1, int Param2, int Param3, int Param4, int Param5);
public sealed record Parameters5SealedRecord(int Param1, int Param2, int Param3, int Param4, int Param5);
public struct Parameters5Struct
public int Param1 { get; init; }
public int Param2 { get; init; }
public int Param3 { get; init; }
public int Param4 { get; init; }
public int Param5 { get; init; }
public ref struct Parameters5RefStruct
public int Param1 { get; init; }
public int Param2 { get; init; }
public int Param3 { get; init; }
public int Param4 { get; init; }
public int Param5 { get; init; }
public readonly struct Parameters5ReadonlyStruct
public int Param1 { get; init; }
public int Param2 { get; init; }
public int Param3 { get; init; }
public int Param4 { get; init; }
public int Param5 { get; init; }
public readonly ref struct Parameters5ReadonlyRefStruct
public int Param1 { get; init; }
public int Param2 { get; init; }
public int Param3 { get; init; }
public int Param4 { get; init; }
public int Param5 { get; init; }
public record struct Parameters5RecordStruct(int Param1, int Param2, int Param3, int Param4, int Param5);
public readonly record struct Parameters5ReadonlyRecordStruct(int Param1, int Param2, int Param3, int Param4, int Param5);
public class Parameters6Class
public int Param1 { get; init; }
public int Param2 { get; init; }
public int Param3 { get; init; }
public int Param4 { get; init; }
public int Param5 { get; init; }
public int Param6 { get; init; }
public sealed class Parameters6SealedClass
public int Param1 { get; init; }
public int Param2 { get; init; }
public int Param3 { get; init; }
public int Param4 { get; init; }
public int Param5 { get; init; }
public int Param6 { get; init; }
public record Parameters6Record(int Param1, int Param2, int Param3, int Param4, int Param5, int Param6);
public sealed record Parameters6SealedRecord(int Param1, int Param2, int Param3, int Param4, int Param5, int Param6);
public struct Parameters6Struct
public int Param1 { get; init; }
public int Param2 { get; init; }
public int Param3 { get; init; }
public int Param4 { get; init; }
public int Param5 { get; init; }
public int Param6 { get; init; }
public ref struct Parameters6RefStruct
public int Param1 { get; init; }
public int Param2 { get; init; }
public int Param3 { get; init; }
public int Param4 { get; init; }
public int Param5 { get; init; }
public int Param6 { get; init; }
public readonly struct Parameters6ReadonlyStruct
public int Param1 { get; init; }
public int Param2 { get; init; }
public int Param3 { get; init; }
public int Param4 { get; init; }
public int Param5 { get; init; }
public int Param6 { get; init; }
public readonly ref struct Parameters6ReadonlyRefStruct
public int Param1 { get; init; }
public int Param2 { get; init; }
public int Param3 { get; init; }
public int Param4 { get; init; }
public int Param5 { get; init; }
public int Param6 { get; init; }
public record struct Parameters6RecordStruct(int Param1, int Param2, int Param3, int Param4, int Param5, int Param6);
public readonly record struct Parameters6ReadonlyRecordStruct(int Param1, int Param2, int Param3, int Param4, int Param5, int Param6);
public class Parameters7Class
public int Param1 { get; init; }
public int Param2 { get; init; }
public int Param3 { get; init; }
public int Param4 { get; init; }
public int Param5 { get; init; }
public int Param6 { get; init; }
public int Param7 { get; init; }
public sealed class Parameters7SealedClass
public int Param1 { get; init; }
public int Param2 { get; init; }
public int Param3 { get; init; }
public int Param4 { get; init; }
public int Param5 { get; init; }
public int Param6 { get; init; }
public int Param7 { get; init; }
public record Parameters7Record(int Param1, int Param2, int Param3, int Param4, int Param5, int Param6, int Param7);
public sealed record Parameters7SealedRecord(int Param1, int Param2, int Param3, int Param4, int Param5, int Param6, int Param7);
public struct Parameters7Struct
public int Param1 { get; init; }
public int Param2 { get; init; }
public int Param3 { get; init; }
public int Param4 { get; init; }
public int Param5 { get; init; }
public int Param6 { get; init; }
public int Param7 { get; init; }
public ref struct Parameters7RefStruct
public int Param1 { get; init; }
public int Param2 { get; init; }
public int Param3 { get; init; }
public int Param4 { get; init; }
public int Param5 { get; init; }
public int Param6 { get; init; }
public int Param7 { get; init; }
public readonly struct Parameters7ReadonlyStruct
public int Param1 { get; init; }
public int Param2 { get; init; }
public int Param3 { get; init; }
public int Param4 { get; init; }
public int Param5 { get; init; }
public int Param6 { get; init; }
public int Param7 { get; init; }
public readonly ref struct Parameters7ReadonlyRefStruct
public int Param1 { get; init; }
public int Param2 { get; init; }
public int Param3 { get; init; }
public int Param4 { get; init; }
public int Param5 { get; init; }
public int Param6 { get; init; }
public int Param7 { get; init; }
public record struct Parameters7RecordStruct(int Param1, int Param2, int Param3, int Param4, int Param5, int Param6, int Param7);
public readonly record struct Parameters7ReadonlyRecordStruct(int Param1, int Param2, int Param3, int Param4, int Param5, int Param6, int Param7);
public class Parameters8Class
public int Param1 { get; init; }
public int Param2 { get; init; }
public int Param3 { get; init; }
public int Param4 { get; init; }
public int Param5 { get; init; }
public int Param6 { get; init; }
public int Param7 { get; init; }
public int Param8 { get; init; }
public sealed class Parameters8SealedClass
public int Param1 { get; init; }
public int Param2 { get; init; }
public int Param3 { get; init; }
public int Param4 { get; init; }
public int Param5 { get; init; }
public int Param6 { get; init; }
public int Param7 { get; init; }
public int Param8 { get; init; }
public record Parameters8Record(int Param1, int Param2, int Param3, int Param4, int Param5, int Param6, int Param7, int Param8);
public sealed record Parameters8SealedRecord(int Param1, int Param2, int Param3, int Param4, int Param5, int Param6, int Param7, int Param8);
public struct Parameters8Struct
public int Param1 { get; init; }
public int Param2 { get; init; }
public int Param3 { get; init; }
public int Param4 { get; init; }
public int Param5 { get; init; }
public int Param6 { get; init; }
public int Param7 { get; init; }
public int Param8 { get; init; }
public ref struct Parameters8RefStruct
public int Param1 { get; init; }
public int Param2 { get; init; }
public int Param3 { get; init; }
public int Param4 { get; init; }
public int Param5 { get; init; }
public int Param6 { get; init; }
public int Param7 { get; init; }
public int Param8 { get; init; }
public readonly struct Parameters8ReadonlyStruct
public int Param1 { get; init; }
public int Param2 { get; init; }
public int Param3 { get; init; }
public int Param4 { get; init; }
public int Param5 { get; init; }
public int Param6 { get; init; }
public int Param7 { get; init; }
public int Param8 { get; init; }
public readonly ref struct Parameters8ReadonlyRefStruct
public int Param1 { get; init; }
public int Param2 { get; init; }
public int Param3 { get; init; }
public int Param4 { get; init; }
public int Param5 { get; init; }
public int Param6 { get; init; }
public int Param7 { get; init; }
public int Param8 { get; init; }
public record struct Parameters8RecordStruct(int Param1, int Param2, int Param3, int Param4, int Param5, int Param6, int Param7, int Param8);
public readonly record struct Parameters8ReadonlyRecordStruct(int Param1, int Param2, int Param3, int Param4, int Param5, int Param6, int Param7, int Param8);