...schon klar ist?
In Delphi hatte ich folgende Funktion:
Delphi-Quellcode:
function TTokenizer.NumTok(const S: string): Integer;
var
I: Integer;
begin
Result := 0;
for I := 1 to Length(S) do
if (S[I] <> C) and ((I = 1) or (S[I-1] = C)) then
Inc(Result);
end;
Sie kann _niemals_ einen Fehler verursachen indem "S[I-1]" kleiner ist als 1, bedingt durch die vorigen Bedingungen.
Ich habe mir den Code nun in C# umgeschrieben:
Code:
public static int NumTok(string S, char C)
{
int Count = 0;
for(int i = 0; i <= S.Length; i++)
if(((S[i] != C) && (i == 1)) || (S[i-1] == C))
Count++;
return Count;
}
Nun bekomm ich ich beim aufruf von:
Code:
textBox1.Text = Tokenizer.NumTok("blubb.jo", '.').ToString();
den Fehler:
Zitat:
Unhandled
exception at @($0,$0,$0).
Exception class System.IndexOutOfRangeException with message 'Der Index war außerhalb des Arraybereichs.'. Process Project3.exe (90044)
Der Fehler kann nur dadurch kommen, dass weitere Bedingungen auch geprüft werden, wenn das Ergebnis auf jeden Fall schon 100% klar ist. Ist dies so in C#?