IndexOf-Methode gibt 0 zurück, wenn in C # / Java -1 zurückgegeben werden soll

Ein Freund von mir kam mit diesem seltsamen Verhalten zu mir, das ich nicht erklären kann. Jede Einsicht wäre willkommen.

Im laufenden VS 2005 (C # 2.0) zeigt der folgende Code das Verhalten

int rr = "test".IndexOf("");
Console.WriteLine(rr.ToString());

Der obige Code gibt "0" aus, was deutlich macht, dass er den Wert -1 haben sollte.

Dies passiert auch in Java, wo die folgende Klasse das Verhalten zeigt:

public class Test{
 public static void main(String[] args){
   System.out.println("Result->"+("test".indexOf("")));
 }
}

Im mit Java 1.6.0_17

Antworten auf die Frage(8)

Ihre Antwort auf die Frage