Условные цели компиляции и структуры

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

Я просто использую escape-коды ANSI для возврата к началу строки и затем очистите всю строку перед печатью моего текущего выхода.

import sys

class Printer():
    """Print things to stdout on one line dynamically"""
    def __init__(self,data):
        sys.stdout.write("\r\x1b[K"+data.__str__())
        sys.stdout.flush()

Чтобы использовать в своем цикле итерации, вы просто вызываете что-то вроде:

x = 1
for f in fileList:
    ProcessFile(f)
    output = "File number %d completed." % x
    Printer(output)
    x += 1   

. здесь

119
задан Peter Mortensen 10 September 2019 в 13:07
поделиться

1 ответ

При использовании системы сборки.NET Core можно использовать ее предопределенные символы (которые на самом деле уже соответствуют примеру и не требуют никаких изменений в Вашем .csproj!):

#if NET40
using FooXX = Foo40;
#elif NET35
using FooXX = Foo35;
#else NET20
using FooXX = Foo20;
#endif

список предопределенных символов документируется в [1 133] Библиотеки Разработки с Кросс-платформенными Инструментами и #if (Ссылка C#) :

Платформа.NET: NETFRAMEWORK, NET20, NET35, NET40, NET45, NET451, NET452, NET46, NET461, NET462, NET47, NET471, NET472, NET48

Стандарт.NET: NETSTANDARD, NETSTANDARD1_0, NETSTANDARD1_1, NETSTANDARD1_2, NETSTANDARD1_3, NETSTANDARD1_4, NETSTANDARD1_5, NETSTANDARD1_6, NETSTANDARD2_0, NETSTANDARD2_1

.NET Core: NETCOREAPP, NETCOREAPP1_0, NETCOREAPP1_1, NETCOREAPP2_0, NETCOREAPP2_1, NETCOREAPP2_2, NETCOREAPP3_0

0
ответ дан 24 November 2019 в 01:32
поделиться
Другие вопросы по тегам:

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