Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.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# 为什么我的分区操作返回0?_C#_Asp.net - Fatal编程技术网

C# 为什么我的分区操作返回0?

C# 为什么我的分区操作返回0?,c#,asp.net,C#,Asp.net,这是我在这个网站上的第一个问题,谢谢你的帮助。我有一个web应用程序,我正在尝试制作,但每当我进行除法运算时,它总是返回0。最终目标是获得正确的输出并将其显示在我的网页上的标签上,并且每当我执行简单的测试操作(如1+2)时,它都是正确的。这里有一些代码,第一个块指的是网页逻辑本身 public partial class Length : System.Web.UI.Page { protected void Page_Load(object sender, Ev

这是我在这个网站上的第一个问题,谢谢你的帮助。我有一个web应用程序,我正在尝试制作,但每当我进行除法运算时,它总是返回0。最终目标是获得正确的输出并将其显示在我的网页上的标签上,并且每当我执行简单的测试操作(如1+2)时,它都是正确的。这里有一些代码,第一个块指的是网页逻辑本身

    public partial class Length : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }



        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            if (IsValid)
            {
                Conversion convertObj = new Conversion();
                double userIntLength = double.Parse(txtLengthInput.Text);
                double convertedLength = convertObj.Length;
                lblResult.Text = convertedLength.ToString();
            }
        }

        protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (ddlLength.SelectedIndex == 1)
            {
                lblUnits.Text = "Miles";
            }
            if (ddlLength.SelectedIndex == 2)
            {
                lblUnits.Text = "Kilometers";
            }
            if (ddlLength.SelectedIndex == 3)
            {
                lblUnits.Text = "Feet";
            }
            if (ddlLength.SelectedIndex == 4)
            {
                lblUnits.Text = "Yard";
            }
            if (ddlLength.SelectedIndex == 5)
            {
                lblUnits.Text = "Centimeters";
            }
            if (ddlLength.SelectedIndex == 6)
            {
                lblUnits.Text = "Inches";
            }
        }
    }
这是业务层逻辑,也是我认为问题所在

 public class Conversion
    {
        double length;
        public double Length
        {
            get
            {
                double total = (((double) length) / 1.609344);
                return total;
            }
            set
            {
                length = value;
            }
        }


    }

使用google fu时,每个人都说这是因为数据类型,但所有内容都被转换为双精度,因此我不知道为什么会发生这种情况。

您从未为Conversion.Length属性赋值,因此Conversion.Length字段值为0,而0/1.609344仍然为0

您可以将代码更改为

Conversion convertObj = new Conversion();
convertObj.Length = double.Parse(txtLengthInput.Text);
double convertedLength = convertObj.Length;
顺便说一句

在长度获取程序中,您将长度字段强制转换为double,尽管它已经贴花为double。所以这是无用的,你可以简单地写

public class Conversion
{
    double length;
    public double Length
    {
        get
        {
            double total = length / 1.609344;
            return total;
        }
        set
        {
            length = value;
        }
    }
}

从不为Conversion.Length属性赋值,因此Conversion.Length字段值为0,而0/1.609344仍然为0

您可以将代码更改为

Conversion convertObj = new Conversion();
convertObj.Length = double.Parse(txtLengthInput.Text);
double convertedLength = convertObj.Length;
顺便说一句

在长度获取程序中,您将长度字段强制转换为double,尽管它已经贴花为double。所以这是无用的,你可以简单地写

public class Conversion
{
    double length;
    public double Length
    {
        get
        {
            double total = length / 1.609344;
            return total;
        }
        set
        {
            length = value;
        }
    }
}

您从未在转换类中实际设置长度值,如果默认值为0,那么答案将始终为0

您从未在转换类中实际设置长度值,如果默认值为0,那么答案将始终为0

您是一个救生员,没错!现在我终于可以继续了。你是个救生员,成功了!现在我终于可以继续了。