El código correcto funcionamiento:
int totalValue = 0;
int total = 0;
totalValue = int.Parse(Session["price"].ToString()) * int.Parse(Session["day"].ToString());
// This line
totalValue += Session["IsChauffeurUsed"].ToString().Equals("Yes", StringComparison.CurrentCultureIgnoreCase) ? 80 : 0;
Edición:
que está utilizando la propiedad estática de la clase StringComparer
. En lugar de usar enum StringComparison
.
Como String.Equals(str1,str2,StringComparison.CurrentCultureIgnoreCase);
o str1.Equals(str2,StringComparison.CurrentCultureIgnoreCase);
tanto se lleva StringComparison enumeración ya que hay argumento de un método.
Ahora, esto genera algunas preguntas, por qué no fue capaz de identificar este error en su ide.
Esto se debe a que, ya StringComparer es una clase abstracta y CurrentCultureIgnoreCase es una propiedad getter estática, que devuelve un objeto de tipo StringComparer clase.
es decir,
public static StringComparer CurrentCultureIgnoreCase { get; }
Así, el compilador le ha tratado su método "Equals
" como método de "Equals
" de Object Class
es decir,
public static bool Equals(object objA, object objB);
Por alguna otra que son curiosos sobre el uso de StringComparer clase.
Así que aquí es un ejemplo:
static void Main()
{
// Use these two StringComparer instances for demonstration.
StringComparer comparer1 = StringComparer.Ordinal;
StringComparer comparer2 = StringComparer.OrdinalIgnoreCase;
// First test the results of the Ordinal comparer.
Console.WriteLine(comparer1.Equals("value-1", "value-1")); // True
Console.WriteLine(comparer1.Equals("value-1", "VALUE-1")); // False
Console.WriteLine(comparer1.Compare("a", "b"));
Console.WriteLine(comparer1.Compare("a", "a"));
Console.WriteLine(comparer1.Compare("b", "a"));
// Test the results of the OrdinalIgnoreCase comparer.
Console.WriteLine(comparer2.Equals("value-1", "value-1")); // True
Console.WriteLine(comparer2.Equals("value-a", "value-b")); // False
Console.WriteLine(comparer2.Equals("value-1", "VALUE-1")); // True
Console.WriteLine(comparer2.Compare("a", "B"));
Console.WriteLine(comparer2.Compare("a", "A"));
Console.WriteLine(comparer2.Compare("b", "A"));
}
para más detalles siguen https://www.dotnetperls.com/stringcomparer
feliz de codificación.
+1 única respuesta que resalta que el problema se debe al uso de StringComparer en lugar del StringComparison adecuado. –