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

Я не думаю, что существует простой путь, особенно что повторяемым может быть генератор (никакое возвращение). Существует достойное обходное решение, полагаясь на явную передачу индекса в тело цикла:

for itemIndex, item in enumerate(l):
    if itemIndex>0:
        previousItem = l[itemIndex-1]
    else:
        previousItem = None 

Эти enumerate() функция является встроенным.

11
задан Mark Seemann 2 October 2009 в 11:58
поделиться

1 ответ

У вас может быть 2 свойства с одним и тем же именем, которые отличаются только типом, и вы можете сделать это без динамического создания типа:

class Foo
{
    public string X
    {
        get { return "Hello world"; }
    }
}

class Bar : Foo
{
    public new int X
    {
        get { return 42; }
    }
}

void Main()
{
    foreach(PropertyInfo prop in typeof(Bar).GetProperties())
    {
        Console.WriteLine("{0} : {1}", prop.Name, prop.PropertyType);
    }
}

Результатом этого кода будет:

X: System.Int32
X: System.String

14
ответ дан 3 December 2019 в 08:30
поделиться
Другие вопросы по тегам:

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