2016-04-22 10 views
1

Mein CodeFormatstring muss genau ein Zeichen lang

objVehicle.TaxAmount = CalculateTax_TaxableVeh(
    objVehicle.IsLogging, 
    Convert.ToChar(objVehicle.CurrentWeightCategory), 
    Convert.ToInt16(Session["FUM"]), 
    Convert.ToInt16(Session["TAX_YEAR"])); 

I Format 'String bin immer muss lange genau ein Zeichen sein. 'bei TAX_YEAR

+0

Ich nehme an, Sie erhalten nicht den Fehler bei 'TAX_YEAR', sondern' Convert.ToChar (objVehicle.CurrentWeightCategory) ' –

+0

Wie bereits erwähnt, ist' objVehicle.CurrentWeightCategory' nicht 1 Zeichen lang. Zur Bestätigung versuchen Sie 'objVehicle.CurrentWeightCategory.Substring (0,1)' und Sie erhalten keine Ausnahme. – raidensan

+0

Sie sollten diese konvertierten Werte in separaten Variablen speichern, bevor Sie sie an die Methode übergeben. Dann würdest du merken, bei welcher Zeile und mit welchem ​​Wert du die Ausnahme bekommst. Da dieser Methodenaufruf eine Anweisung ist, bemerken Sie nicht, dass 'Convert.ToInt16 (Session [" TAX_YEAR "])' problemlos funktioniert, aber 'Convert.ToChar (objVehicle.CurrentWeightCategory)' nicht. –

Antwort

3

string kann viele Zeichen enthalten, aber char speichert ein einzelnes Zeichen.

Convert.ToChar() versucht, die Eingabe in ein Zeichen zu konvertieren. Wenn die Eingabe vom Typ string ist und mehr als ein Zeichen enthält, erhalten Sie die Ausnahme, die Sie in der Frage erwähnt haben.

Sie sollten objVehicle.CurrentWeightCategory überprüfen.

+0

Dies sollte ein Kommentar sein, keine Antwort. – raidensan