我有这两个分别被称为的类:Malicious和MaliciousSmall:
恶意代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DataModel.MaliciousCode
{
public class Malicious : MaliciousSmall
{
}
}
Run Code Online (Sandbox Code Playgroud)
恶意代码小:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;
using System.Data;
namespace DataModel.MaliciousCode
{
public class MaliciousSmall
{
public int Id { get; set; }
public int MaliciousCodeAlertId { get; set; }
public string SourceId { get; set; }
public int MalCodeID { get; set; }
......................................................
......................................................
......................................................
// CONSTRUCTOR:
public MaliciousSmall(DataRow row)
{
Id = int.Parse(row["Id"].ToString());
MaliciousCodeAlertId = (row["MaliciousCodeAlertId"] is DBNull) ? MaliciousCodeAlertId = -1 : MaliciousCodeAlertId = int.Parse(row["MaliciousCodeAlertId"].ToString());
SourceId = (row["SourceId"] is DBNull) ? SourceId = "" : SourceId = row["MaliciousCodeAlertId"].ToString();
MalCodeID = (row["MalCodeID"] is DBNull) ? MalCodeID = -1 : MalCodeID = int.Parse(row["MalCodeID"].ToString());
Title = (row["Title"] is DBNull) ? Title = "" : Title = row["Title"].ToString();
......................................................
......................................................
......................................................
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,在那之后我实现了MaliciousSmall类,我在恶意构造函数上获得了以下错误:
错误53'DataModel.MaliciousCode.MaliciousSmall'不包含带0参数的构造函数C:\ Develop\EarlyWarning\public\Implementazione\Ver2\DataModel\MaliciousCode\Malicious.cs 9 18 DataModel
我该怎么做才能解决它?
我试图创建一个空的构造函数,将DataRow对象作为参数,类似于:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;
using System.Data;
namespace DataModel.MaliciousCode
{
public class Malicious : MaliciousSmall
{
public Malicious(DataRow row)
{
}
}
}
Run Code Online (Sandbox Code Playgroud)
但我仍然有同样的问题.我错过了什么?我该怎么办才能解决?
Jon*_*eet 85
该错误告诉您Malicious
构造函数无法在其基类(MaliciousSmall
)中找到合适的构造函数进行链接.
最初的问题是你的派生类构造函数隐式包含这个构造函数:
public Malicious() : base()
{
}
Run Code Online (Sandbox Code Playgroud)
或者甚至当你添加了一个显式的构造函数时,它仍然试图链接到一个无参数的构造函数:
public Malicious(DataRow row) : base()
{
}
Run Code Online (Sandbox Code Playgroud)
...但是在基类(没有这样的参数的构造MaliciousSmall
),因此该错误.
我想你想链构造连续服用(你的人已经在声明MaliciousSmall
):
public Malicious(DataRow row) : base(row)
{
}
Run Code Online (Sandbox Code Playgroud)
这是假设您总是希望向构造函数提供一行.如果您确实希望在不指定行的情况下创建实例,则需要向基类添加无参数构造函数:
public MaliciousSmall()
{
// Set fields/properties to some default values
}
Run Code Online (Sandbox Code Playgroud)
您可能希望派生类有两个构造函数:
public Malicious() // Implicitly chain to the parameterless base constructor
{
}
public Malicious(DataRow row) : base(row) // Chain to parameterized constructor
{
}
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息,请参阅有关构造函数链接的文章.
我试图创建一个以DataRow对象作为参数的空构造函数
我认为你有一个空洞的混淆.根据定义,空构造函数不接受任何参数.你不能有一个带参数的空构造函数.
如果您还想将参数保留在派生类的构造函数中,则需要使用base
关键字来指定基本构造函数.
public Malicious(DataRow row)
: base(row)
{
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
33760 次 |
最近记录: |