Как Вы реализуете интерфейс C#4 IDynamicObject?

Если я понимаю требование, следующее будет соответствовать обоим случаям. По сути, вам нужно использовать регулярное выражение или оператор |.

Следующее удалит все ведущие 0s

str.replace(/(^0+|^\+)/,'')

Но если вам нужно просто удалить ровно два ведущих 0, используйте это:

str.replace(/(^00|^\+)/,'')

И вот оно в действии на ваши примеры:

let nums = ['+37253783478', '0037253783478', '0037253780478', '375378+0478'];
let replaced = nums.map(num => num.replace(/(^0+|^\+)/,''));
console.log(replaced);

6
задан Jon Skeet 29 October 2008 в 17:14
поделиться

5 ответов

Короткий ответ - то, что MetaObject - то, что ответственно за то, что на самом деле сгенерировало код, который будет выполнен на сайте вызова. Механизм, который это использует для этого, является деревьями выражений LINQ, которые были улучшены в ДОЛЛАРЕ. Таким образом вместо того, чтобы запуститься с объекта, это запускается с выражения, которое представляет объект, и в конечном счете это испытывает необходимость для возврата дерева выражений, которое описывает действие, которое будет взято.

При проигрывании с этим помните что версия Системы. Ядро в CTP было взято от снимка в конце августа. Это не соответствует очень чисто никакой конкретной бете IronPython. Много изменений были внесены в ДОЛЛАР с тех пор.

Кроме того, для совместимости с системой CLR v2. Ядро, выпуски IronPython, запускающегося или с беты 4 или с беты 5 теперь, переименовывают все в, это находится в Системном пространстве имен, чтобы быть в пространстве имен Microsoft вместо этого.

4
ответ дан 10 December 2019 в 02:55
поделиться

Если Вы хотите вплотную образец включая исходный код, приводящий к динамическому объекту, который хранит значение для произвольных свойств в Словаре затем, моя штанга "Первый взгляд на Утиный Ввод в C# 4.0" могла быть правильной для Вас. Я записал, что сообщение, чтобы показать, как динамический объект может быть брошен к интерфейсам со статическим контролем типов. Это имеет полную рабочую реализацию Утки, которая является IDynamicObject, и могут действия как IQuack.

Если Вам нужно больше информации, связываются со мной на моем блоге, и я буду способствовать Вам, столь хороший, как я могу.

3
ответ дан 10 December 2019 в 02:55
поделиться

Я просто вел блог о том, как сделать это здесь:

http://mikehadlow.blogspot.com/2008/10/dynamic-dispatch-in-c-40.html

2
ответ дан 10 December 2019 в 02:55
поделиться

Вот то, что я выяснил до сих пор:

Динамическое Время выполнения Языка в настоящее время сохраняется как часть проекта IronPython. Таким образом, это - лучшее место для движения для получения информации.

Самый легкий способ реализовать поддержку класса IDynamicObject, кажется, для получения из Microsoft. Сценарии. Действия. Динамичный и переопределение соответствующие методы, например, метод Вызова для реализации семантики вызова функции. Это похоже на Microsoft. Сценарии. Действия. Динамичный не был включен в CTP, но тот от IronPython 2.0 похож на него, будет работать.

Я все еще неясен на точном значении "параметра" - параметр, но это, кажется, обеспечивает контекст для привязки динамического объекта.

0
ответ дан 10 December 2019 в 02:55
поделиться

Эта презентация также предоставляет большую информацию о ДОЛЛАРЕ:

0
ответ дан 10 December 2019 в 02:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: