Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.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# 在ASP.Net中绕过If语句_C#_Asp.net_Webforms - Fatal编程技术网

C# 在ASP.Net中绕过If语句

C# 在ASP.Net中绕过If语句,c#,asp.net,webforms,C#,Asp.net,Webforms,我不熟悉.Net。这可能是一个愚蠢的问题,但是,请容忍我。我不知道哪里出错了,但是服务器脚本中的“if”语句被忽略了。我使用网络表单。你能告诉我一个解决办法吗 <%@ Page Language="C#" %> <!DOCTYPE html> <script runat="server"> protected void btnCalculate_Click(object sender, EventArgs e) { int price = 0;

我不熟悉.Net。这可能是一个愚蠢的问题,但是,请容忍我。我不知道哪里出错了,但是服务器脚本中的“if”语句被忽略了。我使用网络表单。你能告诉我一个解决办法吗

<%@ Page Language="C#" %>

<!DOCTYPE html>

<script runat="server">

protected void btnCalculate_Click(object sender, EventArgs e)
{
    int price = 0;
    int fee = Convert.ToInt32(ddlCourses.SelectedItem.Value);
    price += fee;

    if (rbMorning.Checked || rbAfternoon.Checked)
        price -= fee * (10 / 100);

    if (cbMaterial.Checked)
        price += fee * (10 / 100);

    lblMsg.Text = "Total Fee: " + price;


}
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>CoursesApp 1.0</title>
</head>
<body>
<form id="form1" runat="server">
    <div>
        <h3>Courses Application</h3>

        <br />
        <asp:DropDownList ID="ddlCourses" runat="server">
            <asp:ListItem Value="3000">Java SE</asp:ListItem>
            <asp:ListItem Value="4500">Java EE</asp:ListItem>
            <asp:ListItem Value="6000">.Net</asp:ListItem>
            <asp:ListItem Value="3000">Oracle DB</asp:ListItem>
        </asp:DropDownList>
        <br />
        <br />
        <asp:RadioButton ID="rbMorning" runat="server" Text="Morning" Checked="True" GroupName="timing" />
        <asp:RadioButton ID="rbAfternoon" runat="server" Text="Afternoon" GroupName="timing" />
        <asp:RadioButton ID="rbEvening" runat="server" Text="Evening" GroupName="timing" />
        <br />
        <br />
        <asp:CheckBox ID="cbMaterial" runat="server" Text="Material" />
        <br />
        <br />
        <asp:Button ID="btnCalculate" runat="server" OnClick="btnCalculate_Click" Text="Calculate" />
        <br />
        <br />
        <asp:Label ID="lblMsg" runat="server"></asp:Label>

    </div>
   </form>
</body>
</html>

受保护的无效btnCalculate\u单击(对象发送者,事件参数e)
{
国际价格=0;
int-fee=Convert.ToInt32(ddlCourses.SelectedItem.Value);
价格+=费用;
如果(rbMorning.Checked | | rbAfternoon.Checked)
价格-=费用*(10/100);
如果(CBM材料检查)
价格+=费用*(10/100);
lblMsg.Text=“总费用:”+价格;
}
课程第1.0页
课程申请

爪哇SE 爪哇EE 网 五险合一系统








我想补充一件事,但是Sudhakar已经给出了答案,
(10/100)
产生
0
,因为编译器隐式地将
10
100
作为
Int
类型,您可以在调试类型时检查它。 因此,余数为非零的任何数字都将四舍五入到最接近的整数,在您的情况下,它将为零

您可以按照sudhakar的答案来做,或者一个解决方法是通过将
10
定义为
10.0
并将100定义为100.0,让编译器知道您希望这两个数字是
double
类型

if (rbMorning.Checked || rbAfternoon.Checked)
    price -= fee * (10.0 / 100.0);

if (cbMaterial.Checked)
    price += fee * (10.0 / 100.0);

问题:您的表达式在除法时总是为
0
(10/100)
并且当将零与费相乘时,它将再次为零,因此不会发生减法或加法

解决方案:您需要
费用
乘以
10
,然后
除以
100

试试这个:

    if (rbMorning.Checked || rbAfternoon.Checked)
        price -= (10 * fee / 100);

    if (cbMaterial.Checked)
        price += (10 * fee / 100);

放置断点并检查上午是否<代码>RB。下午是否检查<代码>和<代码>RB。检查<代码>是否有值。@madan哪个给定的if语句被绕过?哪个<代码>如果<代码>?代码中有两个
if
s。此外,如果您认为它正在跳过,那么它为
lblMsg.Text
显示了什么?你的用例是什么?它们都被绕过了。安库什·马丹卡:我查过了。它将返回值。您在这里做了哪些更改???@sudhakardipudi+!1好的catch@Amarnath:谢谢你的支持:)@SurajSingh:谢谢you@Suraj辛格:是的,这也是一个不错的选择。“谢谢你。”苏拉辛格解释得很好