Extension methods
От: nikov США http://www.linkedin.com/in/nikov
Дата: 01.10.08 20:07
Оценка: 1 (1)
using System;

static class A
{
    static void TоString(this int x)
    {
        Console.WriteLine("haha!");
    }
    static void Main()
    {
        1.TоString();
    }
}


Сколько вам надо секунд, чтобы разобраться, что происходит?
Re: Extension methods
От: Lloyd Россия  
Дата: 01.10.08 20:20
Оценка:
Здравствуйте, nikov, Вы писали:

N>Сколько вам надо секунд, чтобы разобраться, что происходит?


А в чем подвох???
Re: Extension methods
От: Mab Россия http://shade.msu.ru/~mab
Дата: 01.10.08 20:26
Оценка:
Здравствуйте, nikov, Вы писали:

N>Сколько вам надо секунд, чтобы разобраться, что происходит?

По счастью не так много -- достаточно ошибиться кодировкой при последующем открытии исходника
Re: Extension methods
От: desco США http://v2matveev.blogspot.com
Дата: 01.10.08 20:26
Оценка:
Здравствуйте, nikov, Вы писали:

N>
N>using System;

N>static class A
N>{
N>    static void TоString(this int x)
N>    {
N>        Console.WriteLine("haha!");
N>    }
N>    static void Main()
N>    {
N>        1.TоString();
N>    }
N>}
N>


N>Сколько вам надо секунд, чтобы разобраться, что происходит?


полминуты
хитрец
using System;

static class A
{
    static void TоString(this int x)
    {
        Console.WriteLine("haha!");
    }
    static void Main()
    {
        1.T\u006FString();
        1.T\u043EString();
    }
}
Re[2]: Extension methods
От: nikov США http://www.linkedin.com/in/nikov
Дата: 01.10.08 20:32
Оценка:
Здравствуйте, desco, Вы писали:

D>
D>        1.T\u006FString();
D>        1.T\u043EString();
D>


Интересно, существуют ли таблицы "похожести" юникодных символов? Их можно было бы приспособить для выдачи предупреждений в таких случаях.
Re: Extension methods
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.10.08 00:55
Оценка: 1 (1) +1
Здравствуйте, nikov, Вы писали:

N>Сколько вам надо секунд, чтобы разобраться, что происходит?


0, потому что в реальной жизни такого встретиться не может.
Кто же будет вызвать TоString() (пусть и возвращающий void) и при этом не обрабатывать результат?
Код будет скорее такой:
using System;

static class A
{
    static void TоString(this int x)
    {
        Console.WriteLine("haha!");
    }
    static void Main()
    {
        string s = 1.TоString();
        ...
    }
}

и компилятор расскажет все, что он думает о том кто написал этот код.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Extension methods
От: x64 Россия http://x64blog.name
Дата: 02.10.08 01:01
Оценка: +2 -15
N>Сколько вам надо секунд, чтобы разобраться, что происходит?

И не надоело тебе эти "этюды" постить...
JID: x64j@jabber.ru
Re[3]: Extension methods
От: _FRED_ Черногория
Дата: 02.10.08 05:58
Оценка:
Здравствуйте, nikov, Вы писали:

N>Интересно, существуют ли таблицы "похожести" юникодных символов? Их можно было бы приспособить для выдачи предупреждений в таких случаях.


ИМХО, это от шрифта больше зависит. Можно и такой придумать, в котором "0" и "о" будут одинаковы и ничегошеньки не поделаешь
Help will always be given at Hogwarts to those who ask for it.
Re[4]: Extension methods
От: drol  
Дата: 05.10.08 21:46
Оценка:
Здравствуйте, _FRED_, Вы писали:

М-да... Со времён старого доброго DOS'а и Alt+255 ничего не изменилось

_FR>ИМХО, это от шрифта больше зависит. Можно и такой придумать, в котором "0" и "о" будут одинаковы и ничегошеньки не поделаешь


Студент на днях минут десять пялился на часть выражения вида 8&&, не мог понять что это такое. 8 и & у Lucida Console в крупном размере (да и у других шрифтов), на ширпотребных мониторах очень похожи, особенно с непривычки.

А другой, тоже минут десять, не мог найти опечатку в C-коде, бо относительно опять-таки ширпотребного, но зато широкоформатного и о 20-ти дюймах монитора, при (микро)размере шрифта VS2005 по-умолчанию, отличить фигурную скобку от круглой реально проблема, особенно в группе из трёх и больше...
offtopic
От: Блудов Павел Россия  
Дата: 06.10.08 05:05
Оценка: 1 (1) +5
Здравствуйте, x64, Вы писали:

x64>И не надоело тебе эти "этюды" постить...

Он-то как раз по делу пришет, а не (вырезано) всякую.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Re[5]: Extension methods
От: _FRED_ Черногория
Дата: 06.10.08 05:21
Оценка:
Здравствуйте, drol, Вы писали:

D>А другой, тоже минут десять, не мог найти опечатку в C-коде, бо относительно опять-таки ширпотребного, но зато широкоформатного и о 20-ти дюймах монитора, при (микро)размере шрифта VS2005 по-умолчанию, отличить фигурную скобку от круглой реально проблема, особенно в группе из трёх и больше...


Сам и виноват. Никто не обещал, что умолчания студии будут всегда и лучше всех
Help will always be given at Hogwarts to those who ask for it.
Re: Extension methods
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 06.10.08 10:21
Оценка:
Здравствуйте, nikov, Вы писали:

N>Сколько вам надо секунд, чтобы разобраться, что происходит?


На практике несколько раз сталкивался с русской с вместо английской. Но решарпер обычно довольно быстро помогает понять, куда копать.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
AVK Blog
Re[2]: Extension methods
От: Блудов Павел Россия  
Дата: 07.10.08 04:15
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>На практике несколько раз сталкивался с русской с вместо английской. Но решарпер обычно довольно быстро помогает понять, куда копать.

Особенно радуют такие приколы в динмаических языках тима JavaScript.
Можно много часов просидеть в отладчике и не понять где собака зарылась.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.