ASP.隐式类型的局部变量必须初始化
本文关键字:初始化 局部变量 类型 ASP | 更新日期: 2023-09-27 18:10:51
代码如下:
var directories;
if (filePath == "")
{
directories = Directory.GetDirectories(filePath);
}
else
{
directories = Directory.GetDirectories(myPath);
}
但是当定义变量时,我得到了这个错误:
必须初始化隐式局部变量
为什么我得到这个错误,我该如何去修复它?
使用var
时,编译器不知道directories
的类型,除非在声明时进行初始化。如果稍后进行初始化,则必须声明类型。
string[] directories;
if (filePath == "")
{
directories = Directory.GetDirectories(filePath);
}
//etc
没有赋值就不能使用var。var的类型是由赋值决定的,只要声明一个特定的类型就可以了
编译器无法判断directories
是什么类型,因为您没有初始化它。
试试这个:
string[] directories;
你应该明白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了解详细信息:隐式类型局部变量