我已经声明了三个变量,即
TemplateData tData; TaskInstance tInstance;int tID;
在我的程序中。虽然我已经清楚地声明了它们,但我一直收到错误“使用未分配的局部变量”我完全困惑为什么我的编译器会给出这个错误。
您已声明它们,但尚未为它们分配值。在使用这些变量之前,您必须至少分配一个值null
,否则您会将未定义的值传递给ProcessInput
.
Compiler is absolutely correct
. 尽管您已经声明了它们,但编译器并没有告诉您“使用未声明的局部变量”。它告诉你"Use of unassigned local variable"
..
变量的声明和赋值是有区别的...
将值分配给变量。在您的代码中应该是
TemplateData tData = null;
TaskInstance tInstance = null;
int tID = 0;
或者
TemplateData tData = new TemplateData();
TaskInstance tInstance = new TaskInstance();
int tID = 0;
您尚未为变量赋值。这就是编译器错误所说的。它说“使用未分配的局部变量”。请注意声明和分配变量之间的区别。在使用它们之前,只需将它们全部设置为null
或 0(或其他适当的默认值):
TemplateData tData = null;
TaskInstance tInstance = null;
int tID = 0;
编译器抱怨是因为使用变量而不给它分配一些值通常是导致错误的原因。
您需要在将这些值传递给方法之前对其进行初始化:
TemplateData tData = new TemplateData();
TaskInstance tInstance = new TaskInstance();
int tID = 0;
只需初始化这些变量;
TemplateData tData = null; TaskInstance tInstance = null; int tID = 0;
当你声明变量时,你应该总是分配默认值或空值。
TemplateData tData = null;
TaskInstance tInstance = null;
int tID = 0;