I can\'t think of any reasons why one is better than the other. Compare these two implementations:
public class MyClass
{
public MyClass(string fileName
Methods that do the construction for you are super useful for:
public class Class
{
public static List FromFiles(IEnumerable paths)
{
List instances = new List();
foreach (string path in paths)
{
instances.Add(new Class() { Path = path });
}
return instances;
}
public string Path { get; set; }
}
...since "normal" constructors cannot do this.