Dostałem od znajomego fragment kodu napisany przez jego grupę programistów z pewnego wschodniego kraju:

private static boolean isNull(Object objectToCheck) {
	boolean isNullFlag = false;

	if(objectToCheck!= null) {
		isNullFlag = true;
	}

	return isNullFlag;
}

Oczywiście, wykorzystywane to było tak:

if(isNull(myObj)) {
	// doSmth or return;
}

// doSmthGood :)

Swojego komentarza nie dodam, zaś jego pominę :)

Dodatkowo :) ale się złożyło, dostałem również piękne cacko:

public LpUser GetlpUser(int userId, string title)
{
	LpUser userToReturn = null;

	using (SPSite site = new SPSite(_currentSiteId))
	{
		using (SPWeb web = site.OpenWeb(_currentWebId))
		{
			userToReturn = GetlpUser(userId, title);
		}
	}

	return userToReturn ;
}

Tutaj naprawdę nie wiem co miało być osiągnięte, jeżeli rekurencja to nie rozumiem usingów (oczywiści pomijam fakt braku warunku kończącego rekurencje) :) jeżeli zwrócenie wartości to też nie rozumiem usingów i wywołania metody w usingach, która zapewne coś miała pobierać (w końcu z obiektu site i web nikt nie korzysta) :)

A czy u was lub w waszych projektach takie dziwolągi się trafiają? :)

6 KOMENTARZE

  1. Ja akurat, aż takich kwiatków nie widziałem, ale ponieważ czytam TDWTF to mam wystarczającą dawkę "pięknego" kodu codziennie :)

    Pozdrawiam,
    Paweł

  2. Paradoksalnie funkcja isNull() ma odrobinę sensu – jest krótsza od w wywołaniu od alternatyw:
    1) ReferenceEquals(myObj, null)
    2) (object)myObj == null

    A ze względu na możliwość przeciążenia operatora ==, nie koniecznie musi być równoważna wywołaniu: myObj == null.

    Jednak, co do (bez)sensowności pisania takiej funkcji absolutnie się z Tobą zgadzam.

  3. w Javie nie ma struktur – sa tylko obiekty wiec nie musisz rzutowac. Nawet swojego czasu enum nie bylo (nie wiem czy teraz jest bo dawno nie pisalem). Dodatkowo w Java == jest rowne equals() i zawsze porownuje referencje a nie wartosci :) w .NET jest ciutke inaczej :)

    info na temat struct (brakujacych):
    http://www.javacamp.org/javavscsharp/struct.html

    info na temat equals():
    http://leepoint.net/notes-java/data/expressions/22compareobjects.html
    http://java.sun.com/javase/6/docs/api/java/lang/Object.html#equals%28java.lang.Object%29

    IMO nie zaznaczylem bezposrednio w tresci ze to Java, moj blad :)

    Gutek

Comments are closed.