der richtigen Arbeitscode:
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;
Ausgabe:
Sie verwenden statische Eigenschaft von StringComparer
Klasse. Verwenden Sie lieber enum StringComparison
.
Als String.Equals(str1,str2,StringComparison.CurrentCultureIgnoreCase);
oder str1.Equals(str2,StringComparison.CurrentCultureIgnoreCase);
nimmt sowohl enum StringComparison als Methode Argument gibt.
Nun wirft dies einige Fragen auf, warum Sie diesen Fehler in Ihrer IDE nicht identifizieren konnten.
Dies liegt daran, da StringComparer eine abstrakte Klasse und CurrentCultureIgnoreCase eine statische Getter Eigenschaft ist, die StringComparer Klasse ein Objekt vom Typ zurückgibt.
dh
public static StringComparer CurrentCultureIgnoreCase { get; }
So der Compiler Ihre "Equals
" Methode als "Equals
" Methode der Object Class
dh
public static bool Equals(object objA, object objB);
Für einige andere behandelt, die neugierig sind über die Verwendung von StringComparer Klasse.
So, hier ist ein Beispiel:
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"));
}
für weitere Details Codierung https://www.dotnetperls.com/stringcomparer
Glücklich folgen.
+1 nur Antwort, die das Problem hervorhebt, ist wegen der Verwendung von StringComparer anstelle des richtigen StringComparison. –