函数不会让我返回字符串

时间:2017-09-12 21:32:27

标签: c# string

下面这个函数理论上应该返回一个字符串(“join”)但是当我写“return join”时它给我一个错误说:use of unassigned local variable "join".这是我的代码:

public string function(string input)
{
    string join;
    var token = input.Split('.').Select(p => Regex.Split(p, " ")).ToArray();
    for (int i = 0; i <= token.Length; i++)
    {
         join = string.Join(" ", token[i]);
    }
    return join;
}

我认为没有任何理由导致该错误!

2 个答案:

答案 0 :(得分:2)

仅在“for”内部分配了join,这意味着如果token.Length为0会发生什么?永远不会分配加入。你应该初始化变量:string joing =“”; 祝你有个美好的一天!

答案 1 :(得分:0)

您声明string变量join而未给它初始值。例如,如果正则表达式不生成令牌,则token数组可能为空,并且将跳过for循环。永远不会设置join变量的值。

即使你根据方法的规范知道这个条件是不可能的,编译器也不一定知道,所以它导致编译器错误,需要声明变量。

解决此错误的一种简单方法是将值设置为null或空字符串:

string join = null; // or ""