Сообщение Re[31]: Java vs C# vs C++ от 03.10.2015 20:39
Изменено 03.10.2015 20:40 Evgeny.Panasyuk
Здравствуйте, Serginio1, Вы писали:
EP>>Если нужно вызвать метод с произвольным именем (method) и произвольным количеством аргументов (a1, a2, ...), без всякого предварительного описания — то можно например вот так:
EP>>
EP>>
S> Но согласись все равно убожество. Читать такой код неудобно.
Немного непривычно — да, возможно. Но не убожество точно. Тем более перечислив имена один раз получаем x.method(a1, a2, ...)
Да и ты разве про это изначально говорил?
S>На C# Сделать прокси легко. Вот например как обернуть в Idispatch любой объект .Net
S>http://infostart.ru/public/238584/
Использовать C++ из Python/Java/C# тоже легко — смотри SWIG.
S> Кстати про инлайн
S>http://stackoverflow.com/questions/23374815/creating-inline-functions-and-macros
S>http://aakinshin.net/ru/blog/dotnet/inlining-and-starg/
Инлайнинг обычного вызова это вообще не интересно. Покажи инлайнинг например для замыкания внутри ФВП.
EP>>Если нужно вызвать метод с произвольным именем (method) и произвольным количеством аргументов (a1, a2, ...), без всякого предварительного описания — то можно например вот так:
EP>>
EP>>Dynamic x = ...;
EP>>x.call("method", a1, a2, ...);
EP>>// or
EP>>x("method", a1, a2, ...);
EP>>// or
EP>>x > "method"_(a1, a2, ...);
EP>>
А если заранее описать список возможных имён методов, то можно и так:EP>>
EP>>x.method(a1, a2, ...)
EP>>
S> Но согласись все равно убожество. Читать такой код неудобно.
Немного непривычно — да, возможно. Но не убожество точно. Тем более перечислив имена один раз получаем x.method(a1, a2, ...)
Да и ты разве про это изначально говорил?
S>На C# Сделать прокси легко. Вот например как обернуть в Idispatch любой объект .Net
S>http://infostart.ru/public/238584/
Использовать C++ из Python/Java/C# тоже легко — смотри SWIG.
S> Кстати про инлайн
S>http://stackoverflow.com/questions/23374815/creating-inline-functions-and-macros
S>http://aakinshin.net/ru/blog/dotnet/inlining-and-starg/
Инлайнинг обычного вызова это вообще не интересно. Покажи инлайнинг например для замыкания внутри ФВП.
Здравствуйте, Serginio1, Вы писали:
EP>>Если нужно вызвать метод с произвольным именем (method) и произвольным количеством аргументов (a1, a2, ...), без всякого предварительного описания — то можно например вот так:
EP>>
EP>>
S> Но согласись все равно убожество. Читать такой код неудобно.
Немного непривычно — да, возможно. Но не убожество точно. Тем более перечислив имена один раз получаем x.method(a1, a2, ...)
Да и ты разве про это изначально говорил?
S>На C# Сделать прокси легко. Вот например как обернуть в Idispatch любой объект .Net
S>http://infostart.ru/public/238584/
Использовать C++ из Python/Java/C# тоже легко — смотри SWIG.
S> Кстати про инлайн
S>http://stackoverflow.com/questions/23374815/creating-inline-functions-and-macros
S>http://aakinshin.net/ru/blog/dotnet/inlining-and-starg/
Инлайнинг обычного вызова не особо интересно. Покажи инлайнинг например для замыкания внутри ФВП.
EP>>Если нужно вызвать метод с произвольным именем (method) и произвольным количеством аргументов (a1, a2, ...), без всякого предварительного описания — то можно например вот так:
EP>>
EP>>Dynamic x = ...;
EP>>x.call("method", a1, a2, ...);
EP>>// or
EP>>x("method", a1, a2, ...);
EP>>// or
EP>>x > "method"_(a1, a2, ...);
EP>>
А если заранее описать список возможных имён методов, то можно и так:EP>>
EP>>x.method(a1, a2, ...)
EP>>
S> Но согласись все равно убожество. Читать такой код неудобно.
Немного непривычно — да, возможно. Но не убожество точно. Тем более перечислив имена один раз получаем x.method(a1, a2, ...)
Да и ты разве про это изначально говорил?
S>На C# Сделать прокси легко. Вот например как обернуть в Idispatch любой объект .Net
S>http://infostart.ru/public/238584/
Использовать C++ из Python/Java/C# тоже легко — смотри SWIG.
S> Кстати про инлайн
S>http://stackoverflow.com/questions/23374815/creating-inline-functions-and-macros
S>http://aakinshin.net/ru/blog/dotnet/inlining-and-starg/
Инлайнинг обычного вызова не особо интересно. Покажи инлайнинг например для замыкания внутри ФВП.