Свойство C# может принять несколько значений?

Вы можете прикрепить код?

Вы можете использовать функцию field.reset() для сброса значения поля, где поле является полем переключателя или вы можете использовать метод form.reset() для сброса всех поля в форме, которые нужно указать до изменения пользователя.

8
задан Josh Lee 9 February 2010 в 08:15
поделиться

5 ответов

Я думаю, что вы хотите спросить: Как подразумевает и явное приведение к работе для int и десятичное ?

Вы спрашиваете о неявном приведении, которое автоматически покрывает один объект другим определенным типом. Вы не сможете сделать это для десятичных чисел int и , так как они уже определены в каркасе, и вы не можете уменьшить область действия десятичной дроби путем приведения его к int . Но если вы использовали это в качестве примера для реальных созданных вами объектов, вы можете использовать ссылку неявного выше, чтобы узнать больше о том, как это работает и как это реализовать.

Но вы всегда можете использовать метод convert для преобразования их в нужный тип;

public int MyProperty { get; set; }
...
obj.MyProperty = Convert.ToInt32(32.0M);
obj.MyProperty = Convert.ToInt32(40.222D);
obj.MyProperty = Convert.ToInt32("42");
10
ответ дан 5 December 2019 в 14:06
поделиться

Изменить: Этот метод не может быть использован, так как операция специально связана со свойствами.

Я не верю, что это возможно с надежностью, которую вы описываете. В этом случае вам, вероятно, будет лучше использовать перегруженный метод (полиморфизм).

Это то, что обычно называют сеттером (или мутатором), и вы можете перегрузить способ принимать несколько различных типов параметров. Каждый будет работать по-своему, если хотите. То, как я их настраиваю, может быть синтаксически неправильным, но я верю, что это общая идея, которую вы ищете.

public class MyClass {
  private Int32 mySomeValue;
  public void setSomeValue(Double value) { this.mySomeValue = Convert.ToInt32(value); }
  public void setSomeValue(Int32 value) { this.mySomeValue = value; }
}
2
ответ дан 5 December 2019 в 14:06
поделиться

Нет. Свойство имеет единственное значение. Вы можете назначить ему все, что угодно, для переменной того же типа.

0
ответ дан 5 December 2019 в 14:06
поделиться

Похоже, вам нужно будет определить тип во время выполнения. Вы можете сделать так, чтобы свойство принимало объект, определяло тип и выполняло ваши действия. Разумеется, вам придется создавать исключения для вещей, которые вы не ожидаете. Как вы говорите, возможно, не самый лучший, но возможный. :)

1
ответ дан 5 December 2019 в 14:06
поделиться

Свойства должны выглядеть как открытые поля. Создайте методы-установщики или выполните приведение / преобразование в операторах присваивания, в отличие от свойства-установщика.

-1
ответ дан 5 December 2019 в 14:06
поделиться
Другие вопросы по тегам:

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