C#错误:使用未分配的局部变量

C#错误:使用未分配的局部变量,第1张

概述错误是在for循环中引起的: for (i = 0; i < hand.Length; i++){ Console.WriteLine(hand[i]);} 我试图存储值,以便以后显示它们.写作线可以帮助我确保代码实际上按照我的意图运行. 其余代码供参考: *编辑:添加了一行代码 enum house //variable type for the card type{ Spa 错误是在for循环中引起的:
for (i = 0; i < hand.Length; i++){   Console.Writeline(hand[i]);}

我试图存储值,以便以后显示它们.写作线可以帮助我确保代码实际上按照我的意图运行.

其余代码供参考:
*编辑:添加了一行代码

enum house //variable type for the card type{    Spades,Hearts,Clubs,Diamonds}enum cards //variable type for the cards{    Joker,Ace,Two,Three,Four,Five,Six,Seven,Eight,Nine,Ten,Jack,Queen,King}class Program{    static voID Main(string[] args)    {        Random rnd;        Random rnd2;        int i;        int random;        int random2;        String[] hand;        house randomhouse;        cards randomcard;        //all declared variables        Console.Writeline("Your hand is made up of :");        for (i = 0; i <= 6; i++)//does everything in the {} until i is equal to 6        {            rnd2 = new Random();            random2 = rnd2.Next(0,14);            randomcard = (cards)random2; //selecting a random card from joker to king            if (randomcard > (int)cards.Joker) //if the random card isn't a joker            {                rnd = new Random();                random = rnd.Next(0,4);                randomhouse = (house)random;//selects a random card type                Console.Writeline(randomcard + " of " + randomhouse); //outputs the name of the card                System.Threading.Thread.Sleep(1000);//wait 1 second before getting the new card            }            else            {                Console.Writeline(randomcard);//outputs "Joker"                System.Threading.Thread.Sleep(1000);//wait 1 second before getting the new card            }            hand = new String[i];//making a new array value for every loop            hand[i] = randomcard.ToString();//adding randomcard to the array*        }         Console.Clear();        for (i = 0; i < hand.Length; i++)        {            Console.Writeline(hand[i]);        }        Console.ReadKey();    }}
解决方法 编译器永远无法确定手是否已实际初始化.您应该先将其初始化,或将其设置为null,以便绕过此编译器检查.

所以你可以这样做,但事实上这是不好的做法!更改代码时,最终可能会出现NullReferenceException!

String[] hand = null;

你知道你的代码实际上并不起作用,因为你最终会得到一个数组.我想你的意思是:

hand = new String[6];...hand[i] = theValue;
总结

以上是内存溢出为你收集整理的C#错误:使用未分配局部变量全部内容,希望文章能够帮你解决C#错误:使用未分配的局部变量所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1252100.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-07
下一篇2022-06-07

发表评论

登录后才能评论

评论列表(0条)

    保存