我有一个页面,其中有一些产品和用户输入数字的文本字段.我首先使用JavaScript来计算总成本.根据他们输入的用户数量,他们获得不同的费率(如下面的代码所示).当用户在文本字段中键入或粘贴数字时,将调用函数CalculateCost调用其他函数(仅在示例中显示两个函数,CDCOst和DVDCost),以确保每月成本和年度成本字段显示正确的值.
我当然希望在插入数据库之前在后面的代码中进行最终计算.如何在C#中实现类似的功能?
function CDCost() {
var monthlyAmount;
var annualAmount;
var amount;
var users = $('#txtCD').val();
if (users > 0 && users < 100) {
amount = users * 14.95;
monthlyAmount = amount;
annualAmount = monthlyAmount * 12;
return [monthlyAmount, annualAmount];
}
if (users >= 100 && users <= 250) {
amount = users * 12.95;
monthlyAmount = amount;
annualAmount = monthlyAmount * 12;
return [monthlyAmount, annualAmount];
}
if (users == 0) {
monthlyAmount = 0;
annualAmount = 0;
return [monthlyAmount, annualAmount];
}
}
function DVDCost() {
var monthlyAmount;
var annualAmount;
var amount;
var users = $('#txtDVD').val();
if (users > 0 && users < 100) {
amount = users * 16.95;
monthlyAmount = amount;
annualAmount = monthlyAmount * 12;
return [monthlyAmount, annualAmount];
}
if (users >= 100 && users <= 250) {
amount = users * 14.95;
monthlyAmount = amount;
annualAmount = monthlyAmount * 12;
return [monthlyAmount, annualAmount];
}
if (users == 0) {
monthlyAmount = 0;
annualAmount = 0;
return [monthlyAmount, annualAmount];
}
}
function CalculateCost() {
var cd = CDCost();
var dvd = DVDCost();
var monthlyCost = cd[0] + dvd[0];
var annualCost = cd[1] + dvd[1];
return [monthlyCost, annualCost];
}
$('#txtCD').bind('keyup change', function (ev) {
var cost = CalculateCost();
var monthly = cost[0];
var annual = cost[1];
$('#MonthlyCostSum').text(monthly);
$('#AnnualCostSum').text(annual)
});
Run Code Online (Sandbox Code Playgroud)
我将如何在C#中继续这样做?
就像是:
protected double CDCost()
{
double monthlyAmount;
double annualAmount;
double amount;
double users = Convert.ToDouble(txtCD.Text);
if (users > 0 && users < 100)
{
amount = users * 14.95;
monthlyAmount = amount;
annualAmount = monthlyAmount * 12;
return //how do I return the values here to a CalculateCost function?
}
}
Run Code Online (Sandbox Code Playgroud)
要么使用out参数,要么创建一个包含所有要返回的东西的新类型(所谓的"属性包"):
class ReportData
{
public double MonthlyAmount { get; set; }
public double AnnualAmount { get; set; }
public double Amount { get; set; }
}
...
protected ReportData CDCost()
{
return new ReportData()
{
Amount = users * 14.95
MonthlyAmount = amount,
AnnualAmount = amount * 12.0,
};
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15807 次 |
| 最近记录: |