Is there anyway to #define Constant on a solution basis?

За исключением итерации через повторяемое и подсчета количества повторений, нет. Это - то, что делает его повторяемым и не списком. Это не действительно даже определенная для Python проблема. Посмотрите на классическую структуру данных связанного списка. Нахождение длины является O (n) операция, которая включает итерацию целого списка для нахождения числа элементов.

Как mcrute упомянутый выше, можно, вероятно, уменьшить функцию до:

def count_iterable(i):
    return sum(1 for e in i)

, Конечно, при определении собственного повторяемого объекта можно всегда реализовывать __len__ сами и проводить подсчет элемента где-нибудь.

27
задан Graviton 7 March 2019 в 03:48
поделиться

1 ответ

У меня есть другой подход для этого:

  1. Редактировать глобальный конфигурационный файл. Например, в моем случае это .netcf2.0, поэтому это $(MSBuildBinPath)\microsoft.compactframework.csharp.targets.

    Добавьте следующую строку:

    <Import Project="$(SolutionDir)CommonSettings.targets" Condition="exists('$(SolutionDir)CommonSettings.targets')" />
    

    Это означает, что MSBuild импортирует CommonSettings.targets, если он существует в папке вашего решения.

  2. Создайте CommonSettings.targets в папке вашего решения.

    Например, для определения символа ABC:

    <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
        <PropertyGroup>
        <DefineConstants>$(DefineConstants);ABC</DefineConstants>
        </PropertyGroup>
    </Project>
    
12
ответ дан 28 November 2019 в 05:32
поделиться
Другие вопросы по тегам:

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