Вопрос

Рассмотрим мою первую попытку, простой тип на F # вроде следующего:

родовое слово

Теперь я тестирую это с помощью C # (этот объект предоставляется проекту C #, поэтому очевидная семантика C # желательна):

родовое слово

propName назначен правильно, мой установщик F # работает, но второе утверждение не работает, поскольку базовое значение prop не изменяется.Для меня это имеет смысл, потому что, если я удалю mutable из поля prop, ошибка не будет генерироваться (и одна из них должна быть из-за того, что я пытаюсь изменить значение).Думаю, мне не хватает фундаментальной концепции.

Как правильно выполнить повторную привязку / изменить код prop в классе Test, чтобы я мог пройти свой модульный тест?

Это было полезно?

Решение

Попробуйте это:

родовое слово

Вам нужно сделать привязку изменяемой, а затем изменить ее значение в сеттере.В исходном коде вы просто создавали новую привязку (также называемую prop) в своем сеттере, поэтому никаких изменений не было видно.

Другие советы

В качестве примечания, я бы, вероятно, использовал if .. then вместо конструкции match, поскольку она делает код более лаконичным (сопоставление patterh особенно ценно, когда вам нужно проверить значение против нескольких сложных шаблонов).Кроме того, public - это доступ по умолчанию для member, поэтому вы можете сделать код более лаконичным:

родовое слово

При сопоставлении с шаблоном вы фактически связываете новое значение с

родовое слово

Когда вы связываете такое значение с тем же именем, оно затеняет другое значение для области только что объявленного.Я считаю, что вы действительно хотите сделать следующее:

родовое слово
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top