在代码中使用未分配的局部变量

时间:2012-06-18 11:29:10

标签: c# .net

我已宣布三个变量,即

TemplateData tData; TaskInstance tInstance;int tID;

在我的程序中。虽然我已经清楚地声明了它们,但我仍然收到错误“使用未分配的局部变量” 我完全不知道为什么我的编译器给出了这个错误。

6 个答案:

答案 0 :(得分:1)

您已声明了,但您没有为其分配值。在使用这些变量之前,您必须至少指定一个值null,否则您将未定义的值传递给ProcessInput

答案 1 :(得分:1)

Compiler is absolutely correct。虽然您已经声明了它们,但Compiler没有告诉您“使用未声明的局部变量”。它告诉你"Use of unassigned local variable" ..

变量的声明和赋值之间存在差异 ...

将值分配给变量。在你的代码中它应该是

TemplateData tData = null;
TaskInstance tInstance = null;
int tID = 0;

OR

TemplateData tData = new TemplateData();
TaskInstance tInstance = new TaskInstance();
int tID = 0;

答案 2 :(得分:0)

您尚未为变量指定值。这就是编译器错误所说的。它说“使用未分配的局部变量”。请注意声明指定变量之间的区别。在使用它们之前,只需将它们全部设置为null或0(或其他一些适当的默认值):

TemplateData tData = null;
TaskInstance tInstance = null;
int tID = 0;

编译器抱怨是因为使用变量而没有为其赋值某些值通常会导致错误。

答案 3 :(得分:0)

在将这些值传递给方法之前,需要初始化这些值:

   TemplateData tData = new TemplateData();                 
   TaskInstance tInstance = new TaskInstance();                 
   int tID = 0; 

答案 4 :(得分:0)

只是初始化这些变量;

TemplateData tData = null; TaskInstance tInstance = null; int tID = 0;

答案 5 :(得分:-1)

当你声明变量时,你应该总是指定默认值或空值。

            TemplateData tData = null;
            TaskInstance tInstance = null;
            int tID = 0;