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ą? :)
Trafiają się:) Mam kilka takich w kolekcji i też kiedyś o nich napiszę.
Ja akurat, aż takich kwiatków nie widziałem, ale ponieważ czytam TDWTF to mam wystarczającą dawkę "pięknego" kodu codziennie :)
Pozdrawiam,
Paweł
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.
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
Akurat dziś uśmiech na mojej twarzy wywołało coś takiego:
_public AsyncBeginDownloadEventArgs StartSync()
{
…
}_
Nie żeby z tą metodą było coś nie tak. Po prostu dobór nazw nie wypadł zbyt szczęśliwie. (Przypomina to „słynne” _SafeHandle.DangerousGetHandle_ ‒ http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.safehandle.dangerousgethandle.aspx.)
Jak to jest w Javie, to faktycznie kompletnie bez sensu ;)
Comments are closed.