所以...这是一个非常愚蠢的问题,但我正在搜索,并没有找到一个绝望的答案......
我在Helpers文件夹上创建了这个类,在控制器上使用它来制作一些干净的代码......
Restrict where this project can be run
但是我试图在我的控制器上调用CalcularPagamento方法(并将3个参数传递给它),但我不能。我只能打电话给班级。我试图实例化Class来调用方法,但也没有用。
我该怎么做?
答案 0 :(得分:1)
您的代码应该像这样更改,以便您可以从其他类
访问帮助器方法using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace CarroBemGuardado.Helpers
{
public class CalcularValorPagar
{
public static decimal CalcularPagamento (string dur, decimal ph, decimal hadd)
{
decimal valorpagar = 0;
decimal horas = Convert.ToDecimal(dur.Substring(0, 2));
decimal minutos = Convert.ToDecimal(dur.Substring(3, 2));
if ((horas == 0) && (minutos <= 30))
{
valorpagar = ph / 2;
}
else if ((horas > 0) && (minutos > 10))
{
valorpagar = ph + (hadd * horas);
}
else if ((horas > 0) && (minutos < 10))
{
valorpagar = ph + (hadd * (horas - 1));
}
else
{
valorpagar = ph;
}
return valorpagar;
}
}
}
答案 1 :(得分:1)
您需要为public
方法提供static
Access-Modifier
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace CarroBemGuardado.Helpers
{
public class CalcularValorPagar
{
public static decimal CalcularPagamento (string dur, decimal ph, decimal hadd)
{
decimal valorpagar = 0;
decimal horas = Convert.ToDecimal(dur.Substring(0, 2));
decimal minutos = Convert.ToDecimal(dur.Substring(3, 2));
if ((horas == 0) && (minutos <= 30))
{
valorpagar = ph / 2;
}
else if ((horas > 0) && (minutos > 10))
{
valorpagar = ph + (hadd * horas);
}
else if ((horas > 0) && (minutos < 10))
{
valorpagar = ph + (hadd * (horas - 1));
}
else
{
valorpagar = ph;
}
return valorpagar;
}
}
}
在您的Controller
中,您可以按照以下方式访问它:
public ActionResult Index(){
string sDur = "someValue";
decimal dPH = 2;
decimal dHadd = 3;
decimal valorpagar = CalcularValorPagar.CalcularPagamento(sDur, dPH, dHadd );
return View();
}
您无需实例化帮助程序类CalcularValorPagar
即可访问static methods
类中的任何CalcularValorPagar
。
这是{{1>}的真正美(我最喜欢),你可以在不创建static methods
instance
class
的情况下调用它们static methods
strings.xml
1}}驻留。