metaclass: (Default)
[personal profile] metaclass
В .NET, во всяком случае в 2.0 и раньше есть одна вещь, которая садит на коня просто нечеловечески. Это то, что куча функций обработки строк является методами экземпляра класса String. А не статическими методами класса. Вроде бы мелочь, подумаешь, какая разница - писать s=s.ToLower(); или s=string.ToLower(s);
А вот хрен. С добавлением того факта, что строка это объект, и она может быть null, и использованием этого null как маркера "функция вернула хрень" в куче мест фреймфорка мы получаем тот геморрой, что перед каждым вызовом s.ToLower() приходится впихивать if(!string.IsNullOrEmpty(s)) или как минимум if(s!=null).

Т.е. вместо такого:
if(String.ToLower(Path.GetExtension(fn))==".wav") {
}

приходится писать такое:
string ext = Path.GetExtension(fn);
if(!string.IsNullOrEmpty(ext))
ext = ext.ToLower();
if(ext==".wav"){
}


Вот этот ООПшный фетишизм "все - объект" и отсутствие глобальных или хотя бы статических функций для простейших вещей просто бесит.

Date: 2009-07-12 11:33 am (UTC)
From: [identity profile] http://users.livejournal.com/_windwalker_/
Кстати, а в .NET нет .equalsIgnoringCase() ?
Тогда бы код ребе превратился бы в вот такой:
string ext = Path.GetExtension(fn);
if (".wav".equalsIgnoringCase(ext)) {
//foobar!
}

Date: 2009-07-12 11:37 am (UTC)
From: [identity profile] metaclass.livejournal.com
Есть, но он там с извращениями тоже. И в switch его не засунешь.

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Oct. 8th, 2025 10:24 pm
Powered by Dreamwidth Studios