melhor maneira de criar objeto

Esta parece ser uma pergunta muito estúpida e rudimentar, mas eu tentei pesquisar no Google, mas não consegui encontrar uma resposta satisfatória,

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
    public Person(){}
    public Person(string name, int age)
    {
        Name = name;
        Age = age;
    }
    //Other properties, methods, events...
}

Minha pergunta é se eu tenho classe assim, qual é a melhor maneira de criar um objeto?

Person p=new Person("abc",15)

OU

Person p=new Person();
p.Name="abc";
p.Age=15;

Qual é a diferença entre esses dois métodos e qual é a melhor maneira de criar objetos?

questionAnswers(7)

yourAnswerToTheQuestion