Проблема в том, что в вашем операторе if
отсутствует блок else
, возвращаемое значение не определено для случая, когда self == 0
. Вы можете просто изменить ветку else if
на else
, потому что вы также хотите вернуть self
для 0
.
var absoluteValue: Double {
if self < 0 {
return self * -1
} else {
return self
}
}
Вы также можете написать это как однонаправленный, используя троичный оператор:
var absoluteValue: Double {
return self < 0 ? self * -1 : self
}
Компилятор C# не заботится о файле конфигурации вообще. Среды сборки (MSBuild и VS) будут заботиться о копировании того файла сами.
Я думаю, что MSBuild ответственен за копирование. Если бы Вы вырыли бы запас канавки .target файлы, то Вы, вероятно, нашли бы соответствующие директивы. VS отдельно не копирует.
Обратите внимание также, что Visual Studio действительно проверяет файл конфигурации.
Порядок:
msbuild / xbuild также позволяет вам переопределить это, установив свойство $ (AppConfig).