我正在使用名为“Contribuable”的父类属性,然后在执行期间调用了一个名为“ContribuableMoral”的派生类,但它在null派生类方法中出现。
public class contribuable
{
protected string MATRICULE_FISCALE;
public contribuable(string _matricule_fiscale)
{
this.MATRICULE_FISCALE = _matricule_fiscale; //example MATRICULE_FISCALE=123456789
}
public void insertContribuable()
{
string sql = "insert into CLIENT(MATRICULE_FISCALE)values('" +this.MATRICULE_FISCALE +"')"; //MATRICULE_FISCALE=123456789
}
}
}
class ContribuableMoral : contribuable
{
public ContribuableMoral()
{
}
public void InsertionMorale()
{
string sqlMorale = "insert into CLIENT_MORALE(MATRICULE_FISCALE) values('" + MATRICULE_FISCALE + "')"; //MATRICULE_FISCALE=null
}
}
通常所有权亲属告诉该类可以调用派生类吗?
答案 0 :(得分:0)
嗯,像这样的代码首先不会编译.. 但问题是你的派生类没有传递_matricule_fiscale的基类的构造函数。 添加构造函数:
public ContribuableMoral(string _matricule_fiscale) : base (_matricule_fiscale) { }
到ContribuableMoral类。
答案 1 :(得分:0)
您应该为在父类中传递的构造函数提供参数,例如:
public ContribuableMoral(string _matricule_fiscale) : base(_matricule_fiscale)
然后它会起作用,还有其他一些错误。
下面修复的课程:
public class contribuable
{
protected string MATRICULE_FISCALE;
public contribuable(string _matricule_fiscale)
{
this.MATRICULE_FISCALE = _matricule_fiscale; //example MATRICULE_FISCALE=123456789}
}
public void insertContribuable()
{
string sql = "insert into CLIENT(MATRICULE_FISCALE)values('" + this.MATRICULE_FISCALE + "')";
//MATRICULE_FISCALE=123456789
}
}
internal class ContribuableMoral : contribuable
{
public ContribuableMoral(string _matricule_fiscale) : base(_matricule_fiscale)
{
}
public void InsertionMorale()
{
string sqlMorale = "insert into CLIENT_MORALE(MATRICULE_FISCALE) values('" + MATRICULE_FISCALE + "')";
//MATRICULE_FISCALE=null
}
}
要调用此用途:
var c = new ContribuableMoral("123456789");
c.InsertionMorale();
答案 2 :(得分:0)
之所以发生这种情况是因为Contribuable
没有从ContribuableMoral
调用class ContribuableMoral : Contribuable
{
public ContribuableMoral() : base("somestring")
{
}
参数化构造函数。
应该是:
class ContribuableMoral : Contribuable
{
public ContribuableMoral(string matriculeFiscale) : base(matriculeFiscale)
{
}
或
public class Contribuable
{
protected string MatriculeFiscale { get; }
public Contribuable(string matriculeFiscale)
{
MatriculeFiscale = matriculeFiscale;
}
public void InsertContribuable()
{
string sql = "insert into CLIENT(MATRICULE_FISCALE)values('" + MatriculeFiscale +"')";
}
}
class ContribuableMoral : Contribuable
{
public ContribuableMoral(string matriculeFiscale) : base(matriculeFiscale)
{
}
public void InsertionMorale()
{
string sqlMorale = "insert into CLIENT_MORALE(MATRICULE_FISCALE) values('" + MatriculeFiscale + "')";
}
}
注1 :请查看以下代码样式,并以类似的方式设置代码格式,以便让其他人了解您。
if(gtk_window_is_active(main_window)) {
注2:您的代码现在容易受到SQL注入攻击。不要使用字符串连接来构建SQL查询。