我从“PersonFuntionality”界面创建了“personFuntionality”对象。 该接口有一个保存人员详细信息的方法。问题是personFuntionality总是有一个空值。
public PersonFuntionality personFuntionality;
try
{
List<beans.Person> prsn = new List<beans.Person>();
beans.Person psn = new beans.Person();
psn.PersonId = Convert.ToInt32(txtId.Text.Trim());
psn.PersonName = txtName.Text.Trim();
psn.PersonCity = txtCity.Text.Trim();
prsn.Add(psn);
//prsn.PersonId = Convert.ToInt32(txtId.Text.Trim());
//prsn.PersonName = txtName.Text.Trim();
//prsn.PersonCity = txtCity.Text.Trim();
if (personFuntionality != null)
{
bool success = personFuntionality.SavePersonDetails(prsn);
if (success == true)
{
lblResult.Text = "success";
}
else
{
lblResult.Text = "Failed";
}
}
else
{
lblResult.Text = "Object Null";
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
答案 0 :(得分:5)
您从未在代码中实例化personFuntionality
对象,只是声明了它。您可以将其实例化为。我假设您为实现 PersonFuntionality 接口的类PersonFuntionalityImlementorClass
提供了参数较少的构造函数。
public PersonFuntionality personFuntionality = new PersonFuntionalityImlementorClass();
您有界面参考personFuntionality。您必须为其分配一个实现者类对象。
接口只包含方法,属性的签名, 事件或索引器。实现接口的类或结构 必须实现在。中指定的接口的成员 界面定义。在以下示例中,类 ImplementationClass必须实现一个名为SampleMethod的方法 没有参数并返回void。
interface ISampleInterface
{
void SampleMethod();
}
class ImplementationClass : ISampleInterface
{
// Explicit interface member implementation:
void ISampleInterface.SampleMethod()
{
// Method implementation.
}
static void Main()
{
// Declare an interface instance.
ISampleInterface obj = new ImplementationClass();
// Call the member.
obj.SampleMethod();
}
}