Me gustaría que este método pudiera manejar decimal? también.

Es posible? No quiero usar el objeto como tipo de parámetro.

    public static string SurroundWithQuotes(double? amount)
    {
        if (amount == null)
        {
            return String.Empty;
        }

        string format = "{0:0,0.00}";
        string formattedNumber = String.Format(format, amount);

        if (amount < 1000)
        {
            return formattedNumber;
        }
        else
        {
            string quote = "\"";
            return quote + formattedNumber + quote;
        }
    }
c#
0
user412045 30 ene. 2015 a las 00:15

3 respuestas

La mejor respuesta

O puede tener un método genérico como este:

public static string SurroundWithQuotes<T>(T amount)
{
    if (amount == null)
    {
        return String.Empty;
    }
    string format = "{0:0,0.00}";
    string formattedNumber = String.Format(format, amount);

    decimal amnt = Convert.ToDecimal(amount);

    if (amnt < 1000)
    {
        return formattedNumber;
    }
    else
    {
        string quote = "\"";
        return quote + formattedNumber + quote;
    }
}

La restricción es que el tipo T debe poder convertirse en decimal.

-2
thepirat000 29 ene. 2015 a las 21:34

Puede hacer que su versión principal del método acepte un decimal? y haga una sobrecarga de una línea para double?:

public static string SurroundWithQuotes(double? amount)
{
    return SurroundWithQuotes((decimal?)amount);
}

Eso funcionará bien.

-1
JLRishe 29 ene. 2015 a las 21:36

Cree otro método con el mismo nombre, pero use un parámetro decimal.

public static string SurroundWithQuotes(decimal? amount)

Cuando llame al método con un decimal, seleccionará el correcto. A esto se le llama sobrecarga.

1
Dashsa 29 ene. 2015 a las 21:18