using System;
using System.Collections.Generic;
using System.Text;

namespace TestAOP
{
    class TestClassPersonWithArguments
    { 
        public TestClassPersonWithArguments(string firstName, string lastName)
        {
            FirstName = firstName;
            LastName = lastName;
        }

        public string FirstName { get; }
        public string LastName { get; }

        public static TestClassPersonWithArguments CopyConstructor(TestClassPersonWithArguments t)
{System.Console.WriteLine("start TestClassPersonWithArguments_CopyConstructor_17");System.Console.WriteLine("no identifiable argument type TestClassPersonWithArguments ");
#line 20
var newTC = new TestClassPerson(t.FirstName, t.LastName);
            return t;
System.Console.WriteLine("end TestClassPersonWithArguments_CopyConstructor_17");}        public string Name(string separator = "")
{System.Console.WriteLine("start TestClassPersonWithArguments_Name_22");System.Console.WriteLine("separator="+(separator??"").ToString());
#line 25
return FirstName + separator + LastName;
System.Console.WriteLine("end TestClassPersonWithArguments_Name_22");}         
        public int Length()
{System.Console.WriteLine("start TestClassPersonWithArguments_Length_27");System.Console.WriteLine("No arguments in method Length line 27  class TestClassPersonWithArguments");
#line 30
return Name().Length;
System.Console.WriteLine("end TestClassPersonWithArguments_Length_27");}        public static TestClassPersonWithArguments ConstructorFromProperties(string firstName, string lastName)
{System.Console.WriteLine("start TestClassPersonWithArguments_ConstructorFromProperties_31");System.Console.WriteLine("firstName="+(firstName??"").ToString()+"lastName="+(lastName??"").ToString());
#line 34
return new TestClassPersonWithArguments(firstName, lastName);
System.Console.WriteLine("end TestClassPersonWithArguments_ConstructorFromProperties_31");}    }
}
