private string[] ToConstructorNullArgsTestCaseSourceImp(ConstructorInfo[] constructors)
        {
            var lines = new List <string>();

            var paramGroups = constructors.Select(i => i.GetParameters()).ToArray();
            var havingTwoOrMoreNullableColumns = paramGroups.Where(g => g.Count(p => !p.ParameterType.IsValueType) > 1);

            var argTypes = havingTwoOrMoreNullableColumns.SelectMany(g => g)
                           .Where(m_CSharpService.ShouldUseVariableForParameter);

            var variableDeclarations = argTypes
                                       .Distinct()
                                       .Select(c => m_CSharpService.GetLocalVariableDeclaration(c.ParameterType, false, false))
                                       .ToArray();

            foreach (var declaration in variableDeclarations)
            {
                lines.Add(declaration);
            }

            if (variableDeclarations.Any())
            {
                lines.Add(string.Empty);
            }

            bool testCasesExist     = false;
            int  testCasesLineIndex = lines.Count;

            foreach (var ctor in constructors)
            {
                var typeName       = ctor.DeclaringType?.Name;
                var parameterTypes = ctor.GetParameters();
                var arguments      = m_CSharpService.GetMethodArguments(ctor, true, false);

                for (int i = 0; i < parameterTypes.Length; i++)
                {
                    if (parameterTypes[i].ParameterType.IsValueType)
                    {
                        continue;
                    }
                    testCasesExist = true;
                    var name = parameterTypes[i].Name;
                    var argumentsWithNulledParameter = new List <string>(arguments)
                    {
                        [i] = "null"
                    };

                    lines.Add($"yield return new TestCaseData(new TestDelegate(() => new " +
                              $"{typeName}({string.Join(", ", argumentsWithNulledParameter)}))).SetName(\"null {name}\");");
                }
            }

            if (testCasesExist)
            {
                lines.Insert(testCasesLineIndex, "// ReSharper disable ObjectCreationAsStatement");
                lines.Add("// ReSharper restore ObjectCreationAsStatement");
            }

            return(lines.ToArray());
        }