如何返回方法?

时间:2019-06-17 08:47:54

标签: c#

我需要将其拆分为另一个函数,然后返回以查看它是否包含某些值,但是我不确定如何制作它。例子

exList = getList(ref Path, type);
if(exList.Count > 0){
  Do something...
}

我不太确定这部分怎么写...这是我的一半工作

        static object getList(ref string Path, string type)
        {

            exList = new List<Email>();
            string[] jsonFileList = Directory.GetFiles(Path, type + "_*.json");
            if (jsonFileList.Length > 0)
            {
                //read json file
                foreach (string file in jsonFileList)
                {
                    if (File.Exists(file))
                    {
                        exList.Add(JsonConvert.DeserializeObject<ExceptionEmail>(File.ReadAllText(file)));

                        File.Delete(file);
                    }
                }
            }
            return something;
        }

2 个答案:

答案 0 :(得分:0)

检查下面的代码

static List<Email> getList(ref string Path, string type)
        {

            exceptionList = new List<Email>();
            string[] jsonFileList = Directory.GetFiles(Path, type + "_*.json");
            if (jsonFileList.Length > 0)
            {
                //read json file
                foreach (string file in jsonFileList)
                {
                    if (File.Exists(file))
                    {
                        List.Add(JsonConvert.DeserializeObject<ExceptionEmail>(File.ReadAllText(file)));

                        File.Delete(file);
                    }
                }
            }
            return exceptionList;
        }

答案 1 :(得分:0)

您的函数需要返回一个列表,并且您需要将返回值保存到变量中。

// not List = ..., List is a class, you need a new instance of a list.
List<Email> list = getList(path, type);
if (list.Count > 0)
{
    // Do Something
}
// [...]
private List<Email> getList(string path, string type)
{
    List<Email> ret = new List<Email>();
    string[] jsonFileList = Directory.GetFiles(path, type + "_*.json");
    if (jsonFileList.Length > 0)
    {
        //read json file
        foreach (string file in jsonFileList)
        {
            if (File.Exists(file))
            {
                // not List.Add(), List is a class, you need to add to the instance of a list.
                ret.Add(JsonConvert.DeserializeObject<ExceptionEmail>(File.ReadAllText(file)));
                // File.Delete(file); // The method shouldn't delete files when it's name is getList, delete them after handling in the calling method.
            }
        }
    }
    return ret;
}

另外,您应该按照自己的风格进行工作。

  • 请尽可能使用强类型。 (即无对象)
  • 尝试避免使用静态函数和变量,除非需要它们。
  • 为便于阅读,请编写访问修饰符。
  • 变量和参数名称应为小写字母,常数为大写字母。只有类,枚举和接口,结构等应以大写字母开头。
  • 仅在需要时使用参考参数。默认情况下,按值调用是有原因的。 (这样做的原因是封装,并且避免了副作用。如果您说它是byref,那么您可能希望此处的函数更改路径,而实际上不是。)
  • getList不应删除文件。您不会期望像这样的名字。在调用方法中循环处理完文件后,将其删除。
  • 请检查类与对象/实例之间的区别。
  • 请检查函数调用并返回值。