我在这里有这段代码:
var directories;
if (filePath == "")
{
directories = Directory.GetDirectories(filePath);
}
else
{
directories = Directory.GetDirectories(myPath);
}
但是在定义变量时我得到了这个错误:
必须初始化隐式类型的局部变量
为什么我会收到此错误,我将如何修复它?
答案 0 :(得分:2)
使用var
时,编译器不知道directories
的类型,除非您在声明它时进行初始化。如果您稍后要初始化,则必须声明类型。
string[] directories;
if (filePath == "")
{
directories = Directory.GetDirectories(filePath);
}
//etc
答案 1 :(得分:0)
您无法在没有作业的情况下使用var。它是确定var类型的赋值。只需更改以声明特定类型,您应该很好。
答案 2 :(得分:0)
编译器无法确定directories
的类型,因为您没有对其进行初始化。
试试这个:
string[] directories;
答案 3 :(得分:0)
你应该明白C#是强类型语言。因此,编译器无法确定编译时directories
是什么。
var
关键字。因此,如果你没有初始化directories
的值,那么编译器在运行时就不知道实际的类型(值或引用),并且var
在图片中没有任何地方。
所以你可以试试
string[] directories;
if (filePath == "")
{
directories = Directory.GetDirectories(filePath);
}
或者如果您只想使用var,那么您可以像这样使用它:
var directories = (string)null;
if (filePath == "")
{
directories = Directory.GetDirectories(filePath);
}
您也可以参考MSDN了解详情:Implicitly Typed Local Variables