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

Вот еще один способ: (все приведенные выше ответы верны)

import random

class Chromosome(object):
    def __init__(self):
        self.var1 = random.choice([x for x in range(1, 51)])
        self.var2 = random.choice([x for x in range(51, 101)])
19
задан svick 13 April 2014 в 21:00
поделиться

1 ответ

До C# 6 необходимо использовать "этого" конструктора в этом сценарии:

public SomeStruct(String stringProperty, Int32 intProperty) : this()
{
    this.StringProperty = stringProperty;
    this.IntProperty = intProperty;
}

Выполнение это называет конструктора по умолчанию и путем выполнения так, это инициализирует все поля, таким образом позволяя this ссылаться в пользовательском конструкторе.

<час>

Редактирование: до C# 6, когда это начало быть законным; однако, в эти дни это было бы намного лучше как readonly struct:

public readonly struct SomeStruct
{
    public SomeStruct(string stringProperty, int intProperty)
    {
        this.StringProperty = stringProperty;
        this.IntProperty = intProperty;
    }

    public string StringProperty { get; }
    public int IntProperty { get; }
}
45
ответ дан 30 November 2019 в 02:56
поделиться
Другие вопросы по тегам:

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