System.FormatException:索引(从零开始)必须大于或等于零且小于参数列表的大小 - c#

错误:mscorlib.dll中发生了'System.FormatException'类型的未处理异常
附加信息:索引(从零开始)必须大于或等于零且小于参数列表的大小。

namespace Inheritance
{
    abstract class Airlines
    {
        public int Aid;
        protected string Aname, DOD, ToAdd, ToFrom, FromAdd;
        protected float Cost;
        public void Accept()
        {
            Console.WriteLine("Enter the Aid,Aname");
            Aid = Convert.ToInt32(Console.ReadLine());
            Aname = Console.ReadLine();
            Console.WriteLine("Enter DOD,ToAdd,FromAdd");
            DOD = Console.ReadLine();
            ToAdd = Console.ReadLine();
            FromAdd = Console.ReadLine();
            Console.WriteLine("Enter the  Cost");
            Cost = Convert.ToSingle(Console.ReadLine());
        }

        public abstract void DisplayInfo();
        public abstract void facility();
    }
    abstract class SpiceJet : Airlines
    {
        string PaymentMode;
        public void AcceptData()
        {
            //Console.WriteLine("Welcome");
            Accept();
        }

        public void payment()
        {
            Console.WriteLine("Enter The Payment Mode =");
            PaymentMode = Console.ReadLine();

        }
        public override void DisplayInfo()
        {
            Console.WriteLine("Aid id :{0},Aname is:{1},DOD is :{2},ToAdd is:{3},FromAdd is :{4},Cost is :{5},PaymentMode is :{6}", Aid, Aname, ToAdd, FromAdd, Cost, PaymentMode);

        }
        public abstract void typeclass();

    }
    class SpiceJetchild : SpiceJet
    {
        public override void facility()
        {

        }
        public override void typeclass()
        {

        }
    }
    class Program
    {
        static void Main(string[] args)
        {

            //Airlines a = new Airline();
            //SpiceJet sj = new SpiceJet();
            SpiceJetchild sj = new SpiceJetchild();
            sj.AcceptData();
            sj.payment();
            sj.DisplayInfo();
            sj.facility();
            sj.typeclass();
            Console.ReadKey();
        }
    }
}

参考方案

这行:

Console.WriteLine("Aid id :{0},Aname is:{1},DOD is :{2},ToAdd is:{3},FromAdd is :{4},Cost is :{5},PaymentMode is :{6}", Aid, Aname, ToAdd, FromAdd, Cost, PaymentMode);

您指定了7个项目,但仅提供了6个项目。

重现异常:指定的参数超出有效值范围。参数名称:索引 - c#

我们经常为DataGrid遇到此异常,并且试图重现它,但是我们找不到导致此问题的原因。StackTrace可能是这样的:System.Windows.Controls.ItemCollection.GetItemAt(Int32索引)zh-CN System.Windows.Controls.VirtualizedCellInfoCollection.Con…

System.timer不会引发事件,并且控制台会立即终止 - c#

我需要一个每分钟执行一次的计时器,但是我很难让计时器完全用我以前使用的代码运行。所以我想我在做一些根本上与代码无关的错误,但是即使在Visual Studio Community 2017中刚刚创建的Console项目中,它也不会执行_timer_elapsed方法。控制台立即终止,没有错误,就好像它已经执行了所有代码using System; using …

C#无法将类型为“ System.Double”的对象转换为类型为“ System.Single” - c#

在判断此问题已得到回答之前,请阅读说明。我在下面有这个简单的代码:Dictionary<string, object> d = new Dictionary<string, object>(); d.Add("key" , 30d); System.Diagnostics.Debug.WriteLine($…

System.console()从Eclipse返回null,但可以通过命令提示符进行操作 - java

当我从Eclipse Helios使用System.console时,它总是返回null。但是,当我直接从命令行使用它时(即从命令提示符手动编译并执行Java源代码),我确实获得了一个Console对象。要知道为什么会这样,所以我检查了this链接。据此,当我从Eclipse运行Java代码时,后台作业调度程序必须正在启动我的JVM。这是什么意思?从命令行启…

错误:无法将类型为“ System.Int32”的对象转换为类型为“ System.String”的对象 - c#

我已经完成了完美的编码注册页面,登录代码,现在UpdateCustomer页面有错误-背景信息:我正在使用Microsoft Access作为数据源 LabelState.Text = (string)Session["sState"]; LabelPostalCode.Text = (string)Session["sPost…