下面这个函数理论上应该返回一个字符串(“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;
}
我认为没有任何理由导致该错误!
答案 0 :(得分:2)
仅在“for”内部分配了join,这意味着如果token.Length为0会发生什么?永远不会分配加入。你应该初始化变量:string joing =“”; 祝你有个美好的一天!
答案 1 :(得分:0)
您声明string
变量join
而未给它初始值。例如,如果正则表达式不生成令牌,则token
数组可能为空,并且将跳过for
循环。永远不会设置join
变量的值。
即使你根据方法的规范知道这个条件是不可能的,编译器也不一定知道,所以它导致编译器错误,需要声明变量。
解决此错误的一种简单方法是将值设置为null或空字符串:
string join = null; // or ""