如何同时拥有私有和公共空构造函数?我需要一个空的私有构造函数,因为我先用EF做代码。
实体框架是否需要具有公共空构造函数的对象?
虽然默认生成的类具有自动提供的公共无参数构造函数,但框架中没有任何内容要求它是公共的。必须有一个无参数的构造函数,但它可以是内部的或私有的。
我的尝试:
public class ImmediatePayment:Payment
{
private ImmediatePayment(){}
//Problem
public ImmediatePayment():basePayment(0){}
//defining number other then 0 would make ImmediatePayment pointless, I could check the value of DeadlineDaysAfterOrder, but it seems really really nice to have a constructior without a number
public ImmediatePayment(intDeadlineDaysAfterOrder):basePayment(DeadlineDaysAfterOrder){}
}
public class Payment
{
public int DeadlineDaysAfterOrder {get;private set;}
private Payment(){}
public Payment(int DeadlineDaysAfterOrder)
{
this.DeadlineDaysAfterOrder = DeadlineDaysAfterOrder;
}
}
答案 0 :(得分:2)
答案是,你不能在同一个类中同时拥有空的私有和空的公共构造函数。但是在这种情况下你不需要删除private
构造函数。
必须有无参数构造函数,它可以是internal
或private
。
但它不必是private
,它可以是public
,如果它是生成的,它也是默认值。