好的,所以我对编程还很陌生,我不知道为什么会收到此错误。

我的方法应该存储在此方法中执行的邮件:

    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;
}

09-25 19:12