For this particular implementation of second form, both are equivalent. Because the compiler will generate almost the same code if you simply write the first form.
That is, the compiler is going to add code to it:
public string Name{get;set;}
making it look like this:
private string generatedCode_Name;
public string Name
{
get { return generatedCode_Name; }
set { generatedCode_Name = value; }
}
By the way, this is incorrect
set { value = _Name; } //I believe its a typo!
I think you meant:
set { _Name = value; }