C# 在c中的方法中作为参数的接口#
我已经定义了一个接口C# 在c中的方法中作为参数的接口#,c#,interface,C#,Interface,我已经定义了一个接口IActivity,然后创建了两个类来实现这个接口 public class EngagementActivity : IActivity... 及 然后,我创建了一个方法,将活动保存到数据库中,如下所示 public void SaveActivity (IActivity activity) 我遇到的问题是,当我将类型为EngagementActivity或MPEngagementActivity的参数传递给此方法时,VisualStudio会抱怨类型不匹配 我做错了
IActivity
,然后创建了两个类来实现这个接口
public class EngagementActivity : IActivity...
及
然后,我创建了一个方法,将活动保存到数据库中,如下所示
public void SaveActivity (IActivity activity)
我遇到的问题是,当我将类型为EngagementActivity
或MPEngagementActivity
的参数传递给此方法时,VisualStudio会抱怨类型不匹配
我做错了吗
这是呼叫代码(我知道不完整…)
这里是方法(不完整)
错误消息是:
与SaveActivityRecord(IActivity)”匹配的最佳重载方法具有一些无效参数
根据您提供的信息,您没有做错任何事。一定是别的原因。重新启动Visual Studio的最佳方法:) 您的类
实现IActivity
接口,然后它们可以作为IActivity接口传递。我们用这个基本的OOPS概念来实现多态性,我不知道有多少次
所以这是另外一回事。根据您提供的信息
您没有做错任何事。一定是别的原因。重新启动Visual Studio的最佳方法:)
您的类实现IActivity
接口,然后它们可以作为IActivity接口传递。我们用这个基本的OOPS概念来实现多态性,我不知道有多少次
如果IActivity是来自您的命名空间的类,而不是类似于Microsoft.VisualStudio.Uml.Activities.IActivity的类,则检查SaveActivity的声明(IActivity活动)如果IActivity是来自您的命名空间的类,则检查SaveActivity的声明(IActivity活动),而不是像Microsoft.VisualStudio.Uml.Activities.IAcitivity那样的东西我忘了实现接口的一个成员。。。哼
谢谢您的回复。我忘了实现接口的一个成员。。。哼
感谢所有回复。请显示EngagementActivityViewModel.Activity的声明。
请显示EngagementActivityViewModel.Activity的声明。
。您是否未收到实现所有成员的警告?是否未收到实现所有成员的警告?
public void SaveActivity (IActivity activity)
public ActionResult UpdateEngagementActivityRecord(EngagementActivityViewModel model)
{
if (ModelState.IsValid)
{
svc.SaveActivityRecord(model.Activity);
//Redirect to Index?
}
InitialiseEngagementActivityViewModel(model);
return View(model);
}
internal void SaveActivityRecord(IActivity model)
{
Activity record = new Activity();
if (model != null)
{
dbContext.Activities.Add(record);
Save();
}
}