蓝客社区

游客 您好,登录 | 注册

致蓝客社区的会员们:
即日起,社区论坛部分技术交流版块启用身份验证机制,须符合该版块要求的技术标准才能进入,不便之处敬请见谅!
网络信息安全交流QQ群:187228、会员交流聊天QQ群:42417627
论坛 » .NET编程技术 » 怎么回事?

怎么回事?

burebure积分等级:LV0 经验等级:Exp0
#1发表于 2013-10-17 16:43 回复:2 查看:15704


burebure积分等级:LV0 经验等级:Exp0
#2发表于 2013-10-17 16:44
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


namespace 自己敲出来
{
    class Program
    {
        static string[,] zhigong;
        static int length = 10;
        static int geshu = 0;
        static void Main()
        {
            shuzu();
            mainMenu();
           
        }
        static void kuozhan()
        { 
            string[,] b=new string[length+5,4];
            for (int i = 0; i < geshu; i++)
            {
                for (int j = 0; j < geshu; j++)
                {
                    b[i, j] = zhigong[i, j];
                }
            }
            length += 5;
            zhigong = b;
        }
        static void mainMenu()
        {
            Console.WriteLine("\t********************欢迎进入职工信息管理系统********************");
            Console.WriteLine("\t\t1.录入职工信息\t\t2.浏览职工信息");
            Console.WriteLine("\t\t3.查询职工信息\t\t4.删除职工信息");
            Console.WriteLine("\t\t5.添加职工信息\t\t6.修改职工信息");
            Console.WriteLine("\t\t7.退出");
            Console.WriteLine("\t****************************谢谢使用****************************");
            Console.WriteLine("");
            Console.WriteLine("");
            Console.WriteLine("请再次选择你需要操作的步骤(1--7)");
            byte a = byte.Parse(Console.ReadLine());
            switch (a)
            { 
                case 1:
                    luru();
                    break;
                case 2:
                    liulan();
                    break;
                case 3:
                    chaxun();
                    break;
                case 4:
                    shanchu();
                    break;
                case 5:
                    tianjia();
                    break;
                case 6:
                    xiugai();
                    break;
            }
        }
        static void luru()
        {
            Console.WriteLine("\t\t◆◆◆◆◆输入职工信息◆◆◆◆◆");
            Console.WriteLine("请输入需要创建信息的职工个数");
            byte a = byte.Parse(Console.ReadLine());
            if (a >= length||geshu>=length)
            {
                kuozhan();
            }
            for (int i = 0; i < a; i++)
            {
                Console.WriteLine("请输入职工号");
                string b = Console.ReadLine();
                zhigong[geshu, 0] = b;
                Console.WriteLine("请输入职工姓名");
                string c = Console.ReadLine();
                zhigong[geshu, 1] = c;
                Console.WriteLine("请输入职工性别");
                string d = Console.ReadLine();
                zhigong[geshu, 2] = d;
                Console.WriteLine("请输入职工年龄");
                string e = Console.ReadLine();
                zhigong[geshu, 3] = e;
                geshu++;
            }
            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine("录入完毕");
            Console.WriteLine("是否继续操作回到主菜单请按:1继续录入请按:2");
            string f = Console.ReadLine();
            if (f=="1")
            {
                mainMenu();
            }
            else
            {
                luru();
            }
        }
        static void liulan()
        {


        }
        static void chaxun()
        {


        }
        static void shanchu()
        {


        }
        static void tianjia()
        {


        }
        static void xiugai()
        {


        }
        static void shuzu()
        { 
            string[,] zhigong=new string[length,4];
        }
    }
}
蓝盟小侃积分等级:LV1 经验等级:Exp0社区管理员
#3发表于 2013-10-27 18:58

@burebure
……

你输入员工数量时,此时a的值为1,length 的值为10,geshu =0
 if (a >= length || geshu >= length)
            {
                kuozhan();
            }
所以if里面的表达式为false,不会执行kuozhan(); 即无法对数组进行初始化。所以报错:无法使用未初始化的数组。