Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C方法溢出_C#_.net_Class_Overloading - Fatal编程技术网

C# C方法溢出

C# C方法溢出,c#,.net,class,overloading,C#,.net,Class,Overloading,我定义的MilesCal类 private void btnMiles_Click(object sender, EventArgs e) { try { int milesless200 = int.Parse(txtMiles.Text); int milesmore200 = int.Parse(txtMiles200.Text); MilesCal workingoutmilescost = new MilesCal();

我定义的MilesCal类

private void btnMiles_Click(object sender, EventArgs e)
{
    try
    {
        int milesless200 = int.Parse(txtMiles.Text);
        int milesmore200 = int.Parse(txtMiles200.Text);

        MilesCal workingoutmilescost = new MilesCal();
        if (milesless200 > 200)
        {
            lblMilesMorethan200.Text = "You can't enter more then 200 in the first box";
        }
        else
        {
            if (milesmore200 == 0)
            {
                 int carry = workingoutmilescost.MilesRepay(milesless200);
                 lblMilesShow.Text = carry.ToString();

            }
            else
            {
                int carry = workingoutmilescost.MilesRepay(milesless200, milesmore200);
                lblMilesShow.Text = carry.ToString();
            }
        }
        lblMilesError.Text = "No Error";
    }
    catch (FormatException fEx)
    {
        lblMilesError.Text = fEx.Message;
    }
}
假设该代码在标签中显示驾驶员在前200英里内以5便士的价格驾驶,然后再以2便士的价格驾驶。我已经让代码工作了,但后来发现它必须使用方法溢出来完成。此时,我收到一个错误,错误1无法将方法组“ToString”转换为非委托类型“string”。您是否打算调用该方法?在

 class MilesCal
    {
        public int MilesRepay(int a)
        {
            int x;
            return x = (a*5)/100;
        }
        public int MilesRepay(int a, int b)
        {
            int y;
            return y = (a*5)/100 + (b*2)/100;
        }
    }
他补充道

现在这个陷阱似乎被绊倒了,我能再次请你们解决这个问题吗?因为这可能又是一个简单的解决办法

尝试添加括号

lblMilesShow.Text = carry.ToString;

您需要使用carry.ToString,包括括号。

ToString是一种方法。你需要使用括号。试试carry.ToString

ToString是一种方法。您需要在方法名称后添加括号

lblMilesShow.Text = carry.ToString();

ToString不是一个属性,而是一个方法,用括号调用

lblMilesShow.Text = carry.ToString();

其他答案都没问题。ToString是一种方法。因此,使用方法名而不调用它意味着您正在向方法组传递引用,而不是执行方法本身的工作

carry.ToString是对函数ToString的引用

ToString调用实例carry上的ToString方法

但是,真的,我认为你完全错了,你不应该有两个文本框,你应该让这个人输入他们行驶的英里数。然后有一个函数为您执行此操作:

lblMilesShow.Text = carry.ToString();

或者类似的…

正如其他人已经报告的那样,您必须使用括号

错误消息的解释是无法将方法组“ToString”转换为非委托类型,即不带括号的方法名称指定方法本身并将其解释为委托。它不调用该方法。如果要调用该方法并使用其返回值,请始终使用括号

可以将委托视为方法的内存地址。实际上,它是一个对象,封装了这个地址

接住的东西好像绊倒了


您的意思是在底部的catch块中捕获异常。如果是这种情况,我假设它只能是int.parse-calls之一的解析异常。您试图解析的内容不是int-可能是空字符串???

@DavidHeffernan方法重载。ToString不是属性,它是一个方法,因此应该是ToString;你缺少开始和结束大括号。该死。我点击了这个问题,以为我要学习一些我以前从未听说过的编程概念。@ean5533你和我都是人。@Dan1676,你是否编辑了这个问题,其中的陷阱似乎是tripping[sic]部分?你将不得不添加更多细节,因为我个人不知道这意味着什么。更好的是,问一个新问题,因为人们已经回答了你的第一个问题。哦。。。这是家庭作业。或者说你有史以来最糟糕的雇主。
lblMilesShow.Text = carry.ToString();
    public int MilesRepay(int miles)
    {
        return Math.Min(200, miles) * 0.05 + Math.Max(0, miles-200) * 0.02;
    }