这些类中哪一个有默认构造函数?我只是想着A,但我错了吗?
class A {}
class B {B() {}}
class C {C(int j) {}}
答案 0 :(得分:2)
你是对的。根据定义,默认构造函数是在未定义构造函数时创建的。由于 public void Delete(DBS.BankAccount entity)
{
try
{
if (_nahidContext.Entry(entity).State == System.Data.Entity.EntityState.Detached)
{
_nahidContext.BankAccounts.Attach(entity);
}
_nahidContext.Entry(entity).State = System.Data.Entity.EntityState.Deleted;
//or
//_nahidContext.BankAccounts.Remove(entity);
_nahidContext.SaveChanges();
}
catch (Exception ex)
{
throw new ArgumentException(ex.Message);
}
}
没有定义构造函数,因此将为其创建一个默认构造函数。
从技术上讲,你可以说A
有一个默认构造函数,因为如果没有定义,那么无参数构造函数就会被创建。
参考:http://docs.oracle.com/javase/specs/jls/se8/html/jls-8.html#jls-8.8.9
答案 1 :(得分:0)
正。
类A
有一个默认构造函数,因为你没有为类提供任何构造函数。因此,编译器自动提供无参数的默认构造函数。此默认构造函数将调用超类的无参数构造函数(在本例中为Object类)。第二个类,类B
,提供了一个无参数的构造函数,但它不是默认的,因为编译器没有为您提供它。