c#错误从函数返回值

时间:2014-04-03 15:53:55

标签: c# .net function ref

我想使用方法或函数来创建我需要的目录树,并返回调用过程的新路径。

但是我无法编译

我收到错误cannot convert method group 'localAttachmentsPath' to non delegate type string ..

这是我的代码 - 我做错了什么?有没有更好的方法来实现这一目标?

        private string localAttachmentsPath(ref string emailAttachmentsPath)
        {

            string sYear = DateTime.Today.Year.ToString();
            string sMonth = DateTime.Now.ToString("MMMM");
            string sDirectoryDate = DateTime.Today.ToString("dd.MM.yyyy");

            if (!Directory.Exists(emailAttachmentsPath))
            {
                Directory.CreateDirectory(emailAttachmentsPath);

            }

            emailAttachmentsPath = emailAttachmentsPath + "\\" + sYear;
            if (!Directory.Exists(emailAttachmentsPath))
            {
                Directory.CreateDirectory(emailAttachmentsPath);
            }

            emailAttachmentsPath = emailAttachmentsPath + "\\" + sMonth;
            if (!Directory.Exists(emailAttachmentsPath))
            {
                Directory.CreateDirectory(emailAttachmentsPath);
            }

            emailAttachmentsPath = emailAttachmentsPath + "\\" + sDirectoryDate;
            if (!Directory.Exists(emailAttachmentsPath))
            {
                Directory.CreateDirectory(emailAttachmentsPath);
            }

            //localAttachmentsPath = emailAttachmentsPath;
            return localAttachmentsPath;

        }

4 个答案:

答案 0 :(得分:0)

您只需指定要返回的值,如下所示:

return emailAttachmentsPath;

我还建议您从参数中删除ref关键字。

进一步阅读

答案 1 :(得分:0)

看起来问题是:

return localAttachmentsPath;

这是一个函数,我想你要声明一个局部变量,其名称不是函数名。

答案 2 :(得分:0)

如果您使用的是ref string emailAttachmentsPath,则不需要返回任何字符串

答案 3 :(得分:0)

您可以将返回类型设置为void并删除return语句,因为您将变量emailAttachmentsPath作为引用变量传递,因此它将从调用者更新而不返回语句。

您的方法应如下所示:

private void localAttachmentsPath(ref string emailAttachmentsPath)
{

//your code

//no return statement

}