C# 使用了未赋值的局部变量

2025-03-19 12:39:40
推荐回答(5个)
回答1:

首先,为了防止这种不必要的错误,初始化变量的时候,最好先赋个默认值,比如char A='';

其次,这里会报错是这样的。
你的变量A在for (int i = a - 1; i < a + 1; i++)循环体出现之前声明了,但是还没有初始化,此时直接调用A的话是会报错的,这个需要明白。然后return(A)出现在for (int i = a - 1; i < a + 1; i++)循环体外边,正常逻辑,变量A在循环体里边会被初始化,然后走return(A)是OK的。
但是编译器会考虑你的程式假如a和i的初值导致逻辑不走循环体的情况,这时候等于说是char A='';然后直接不走循环走return(A),此时就会出错。

回答2:

你的数组没有初始化
int[]
num;需要改成int[]
num=new
int[1000];这种格式(因为不清楚会有多少个数字,所以暂定1000)
同样后面的for
(int
i
=
0;
i
<=
num.Length-1;
i
+=5)
就需要改成
for
(int
i
=
0;
i
i
+=5)
实际上这种不定长的数据并不适合用数组的,可以用诸如
List
list=new
List();
然后在
if
(i
%
7
==
0)的时候就可以用
list.Add(i);

回答3:

string name1 = “”;
string name2 = “”;
int age1 = 0;
int age2 = 0;
定义变量是直接初始化,养成好的习惯可以减少很多不必要的错误。

回答4:

出错代码:
public string XMLStartPosion()
{
string path2;
XmlReader xr = XmlReader.Create(@"E:\单元项目\Explorer\Explorer\XMLPath.xml");
if (xr.Read())
{
if (xr.NodeType == XmlNodeType.Element)
{
path2 = (string)xr.Value;
Console.WriteLine(path2);
}
}
return path2;
}
在定义变量时进行初始化是个好习惯。
改错如下string path2="";
具体实例是使用XMLReader读取XML文件中存储的文件夹路径,此处只记载出错部分。

回答5:

改一下,给char A=‘’;看看