好的,所以我对编程还很陌生,我不知道为什么会收到此错误。
我的方法应该存储在此方法中执行的邮件:
public void StoreMail(PhishingMail PhishingMail)
{
using (var phishingMailStorage = new PhishFinderModel())
{
phishingMailStorage.PhishingMail.Attach(PhishingMail);
phishingMailStorage.SaveChanges();
}
然后在我的processPhishingMail方法中,它调用Store方法。但是然后我得到一个错误:无法将类型'void'隐式转换为'int'。
public void ProcessPhishingMail(PhishingMail phishingMail)
{
Hashtable phishingUrls;
int phishingMailId;
int phishingUrlId;
//Error convertion
phishingMailId = _storageAgent.StoreMail(phishingMail);
所以我真的找不到从void转换为int的解决方案。也许不可能吗?
我的问题是:如何在代码中转换这些类型?
请不要苛刻,我真的很陌生。感觉就像我在信息海洋中畅游,不知道在哪里寻找或开始。因此,任何建议的教程都非常欢迎。
最佳答案
方法public void StoreMail(PhishingMail PhishingMail)
没有返回任何值。因此,当您这样做时:phishingMailId = _storageAgent.StoreMail(phishingMail);
由于StoreMail
被声明为void
,因此您将得到该错误,这意味着它不返回任何内容。
要解决此问题,只需像这样调用StoreMail
:_storageAgent.StoreMail(phishingMail);
如果要从StoreMail
返回值,则必须将其更改为返回int
值:
public int StoreMail(PhishingMail PhishingMail)
{
using (var phishingMailStorage = new PhishFinderModel())
{
phishingMailStorage.PhishingMail.Attach(PhishingMail);
phishingMailStorage.SaveChanges();
}
return someIdWhichYouNeedToFigureOut;
}