Index Of - zadziwiające działanie

0

Chcę znaleźć wszystkie sygnatury, w których występuje znak %:

				if (sygnatura.IndexOf('%') != -1)
				{
					string u = sygnatura;
				}

A takie coś nigdy nie wchodzi do ifa, podczas gdy poniższe:

 
                                int janiemoge = sygnatura.IndexOf('%');
				if (janiemoge  != -1)
				{
					string u = sygnatura;
				}

wchodzi do ifa. Nie rozumiem.

edit: drugi przypadek kasuję, bo okazało się błędem VS2003 przy zmianie kodu w trakcie debugowania.

0

Nie rozumiem co znaczy "nie wchodzi do ifa" - kod który podałeś działa poprawnie jeśli sygnatura jest typu string. Może jakiś problem z konwersją typów... chociaż w sumie IndexOf jest typu int - więc nie powinno być problemów i wątpię, że to przyczyna. W każdym razie możesz spróbować:

if (Convert.ToInt32(sygnatura.IndexOf('%')) != -1)

lub

if ((int)sygnatura.IndexOf('%') != -1)

1 użytkowników online, w tym zalogowanych: 0, gości: 1