Có một sự khác biệt nhỏ mà bạn có thể nhận được, để thực hiện với Phân tích mã.
xem xét mã này:
public class Base
{
public virtual void Function()
{
}
}
public class Derived: Base
{
public static Derived Create()
{
return new Derived();
}
private Derived()
{
// Code analysis warning: CS2214 "Do not call overridable methods in constructors".
Function();
}
}
Có một Mã Phân tích cảnh báo cho các nhà xây dựng có nguồn gốc, bởi vì chúng ta đang truy cập vào một phương pháp ảo từ nó, đó là một điều xấu.
Tuy nhiên, nếu bạn thực hiện Derived
bị đóng kín, cảnh báo Phân tích mã sẽ biến mất.
Vì vậy, có một số lượng nhỏ và giả mạo sự khác biệt cho bạn. ;)
Nguồn
2013-05-19 21:30:56
Tại sao bạn muốn một lớp có hàm tạo riêng tư ở vị trí đầu tiên? –
@MarkusMeskanen Lớp có thể có phương thức nhà máy tĩnh công cộng cần phải là cách duy nhất để khách hàng có thể tạo một thể hiện của lớp. –
@MarkusMeskanen [Singletons] (http://msdn.microsoft.com/en-us/library/ff650316.aspx) –