Jimbo Mountney
Jimbo Mountney

Reputation: 31

Writing the string.format over multiple lines

public override string ToString()
{
    return String.Format("Name : {0} Date Of Birth : {1: dd/MM/yyyy} Gender : {2} Telephone : {3}", _name, _dob, _gender, _tel);
}

How would I change this so that each Heading is written on a separate line so name is on line 1, DOB line 2, Gender line 3, etc?

Upvotes: 2

Views: 9065

Answers (4)

Peyman Majidi
Peyman Majidi

Reputation: 1985

Ok, there is a new way in C# it is very readable and simple to implement; you should add a dollar sign($) before double qoute:

return $"Name : {_name}\r\nDate Of Birth : {_dob}\r\nGender : {_gender}\r\nTelephone : {_tel}"; 

Upvotes: 0

Enigmativity
Enigmativity

Reputation: 117057

I would go with this approach:

public override string ToString()
{
    var nl = Environment.NewLine;
    return
        $"Name : {_name}{nl}"
        + $"Date Of Birth : {_dob:dd/MM/yyyy}{nl}"
        + $"Gender : {_gender}{nl}"
        + $"Telephone : {_tel}";
}

Or this, if you think it is clearer:

public override string ToString()
{
    return
        $"Name : {_name}{Environment.NewLine}"
        + $"Date Of Birth : {_dob:dd/MM/yyyy}{Environment.NewLine}"
        + $"Gender : {_gender}{Environment.NewLine}"
        + $"Telephone : {_tel}";
}

Upvotes: 1

Hamid Pourjam
Hamid Pourjam

Reputation: 20754

I recommend that you use Environment.NewLine because you can trust it in different runtimes

return String.Format("Name : {1}{0}Date Of Birth : {2: dd/MM/yyyy}{0}Gender : {3}{0}Telephone : {4}",
    Environment.NewLine, _name, _dob, _gender, _tel);

Upvotes: 1

Millie Smith
Millie Smith

Reputation: 4604

Using the \r and \n carriage return and linefeed characters.

public override string ToString() 
{ 
    return String.Format("Name : {0}\r\nDate Of Birth : {1: dd/MM/yyyy}\r\nGender : {2}\r\nTelephone : {3}", _name, _dob, _gender, _tel); 
}

Upvotes: 0

Related Questions