He usado métodos de extensión en numerosas ocasiones y no me he encontrado con este problema. ¿Alguien tiene alguna idea de por qué esto arroja un error?Error al redondear la extensión en decimal: no se puede acceder con una referencia de instancia; califíquelo con un nombre de tipo en su lugar
/// <summary>
/// Rounds the specified value.
/// </summary>
/// <param name="value">The value.</param>
/// <param name="decimals">The decimals.</param>
/// <returns></returns>
public static decimal Round (this decimal value, int decimals)
{
return Math.Round(value, decimals);
}
Uso:
decimal newAmount = decimal.Parse("3.33333333333434343434");
this.rtbAmount.Text = newAmount.Round(3).ToString();
newAmount.Round (3) está lanzando el error del compilador:
Error 1 Member 'decimal.Round(decimal)' cannot be accessed with an instance reference; qualify it with a type name instead
Gracias! Además, vea [Geert Verhoeven] (http://geertverhoeven.blogspot.com/) [Comportamiento extraño con métodos de extensión] (http://geertverhoeven.blogspot.com/2008/01/strange-behavior-with-extension -methods.html). –