当前位置: 首页 > 编程语言 > C#

分享_111115

时间:2023-04-11 11:57:54 C#

使用未分配的局部变量我在编写十六进制到二进制的转换器时遇到了麻烦,转到bin等。这是我的代码,当我调试它时出现错误“使用未分配的局部变量Dec_Int10”,你能帮我吗?我该如何解决这个错误?protectedvoidButton_Click(objectsender,EventArgse){if(Page.IsValid){intDec_Int10;if(!(string.IsNullOrEmpty(TextBox1.Text))){Dec_Int10=Convert.ToInt32(TextBox1.Text,10)));}if(!(string.IsNullOrEmpty(TextBox2.Text))){Dec_Int10=Convert.ToInt32(TextBox2.Text,16)));}if(!(string.IsNullOrEmpty(TextBox3.Text))){Dec_Int10=Convert.ToInt32(TextBox3.Text,8)));}if(!(string.IsNullOrEmpty(TextBox4.Text))){Dec_Int10=Convert.ToInt32(TextBox4.Text,2)));}stringDec_Str10=Convert.ToString(Dec_Int10,10);字符串Hex_Str16=Convert.ToString(Dec_Int10,16);字符串Oct_Str8=Convert.ToString(Dec_Int10,8);字符串Bin_Str2=Convert.ToString(Dec_Int10,2);TextBox1.Text=Dec_Str10;TextBox2.Text=Hex_Str16;TextBox3.Text=Oct_Str8;TextBox4.Text=Bin_Str2;你得到那个错误是因为变量没有分配默认值,并且因为唯一的分配是在一个块内,编译器认为它可能永远不会分配变量。如果你只是把它初始化为0,你就不会再有错误了。这是编译器提供的检查,防止你轻易出错。你想初始化变量:intDec_Int10=0;否则,编译器不知道它是否曾被赋值。你永远不会初始化Dec_Int10,它会抱怨,因为你有所有这些if语句,编译器不能保证它会满足其中一个if语句并设置Dec_Int101。添加else语句或尝试将其初始化为:intDec_Int10=-1;声明它时,将Dec_Int10声明为零(或您希望它具有的任何默认值)。您只需要将intDec_Int10更改为intDec_Int10=0;因为编译器无法验证Dec_Int10是否会在以另一种方式使用它之前被设置。添加其他人将是最好的事情。如果您开始初始化它,您很可能只会重置该值。使用else效率更高。看看你的代码。如果txtBox1、2、3和4同时为空/空会怎样?没有任何内容分配给Dec_Int10。因此,稍后在您的代码中,您将尝试转换一个未初始化的变量。编译器查看执行路径,并确定此变量未初始化的情况(例如,如果失败则全部4个)。正如其他人所说,您可以通过以下方式修复它:intDec_Int10=0;更大的学习点是为什么会出现这种情况?例如,此代码不会生成错误,因为无论文本框1、2、3、4的状态如何,Dec_Int10在转换之前都已初始化。以上就是C#学习教程的全部内容:使用未赋值的局部变量。如果对大家有用,需要详细了解C#学习教程,希望大家多多关注——intDec_Int10;如果(!(string.IsNullOrEmpty(TextBox4.Text)))Dec_Int10=Convert.ToInt32(TextBox4.Text,2);否则如果(!(string.IsNullOrEmpty(TextBox3.Text)))Dec_Int10=Convert.ToInt32(TextBox3.Text,8);elseif(!(string.IsNullOrEmpty(TextBox2.Text)))Dec_Int10=Convert.ToInt32(TextBox2.Text,16);elseif(!(string.IsNullOrEmpty(TextBox1.Text)))Dec_Int10=Convert.ToInt32(TextBox1.Text,10);否则Dec_Int10=0;TextBox1.Text=Convert.ToString(Dec_Int10,10);TextBox2.Text=Convert.ToString(Dec_Int10,16);TextBox3.Text=Convert.ToString(Dec_Int10,8);TextBox4.Text=Convert.ToString(Dec_Int10,2);本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: