Страницы

Поиск по вопросам

среда, 5 февраля 2020 г.

Метод класса по умолчанию

#c_sharp


В Delphi, VB есть методы и/или свойства по умолчанию. В C# я нашел только обращение
к элементам массива через свойства по умолчанию:
public class Skyscraper
{
  Story[] stories;
  public Story this [int index]
  {
     get { return stories [index]; }
     set
     {
       if (value != null)
         stories [index] = value;
     }
  }
  ...
}

...

Skyscraper empireState = new Skyscraper (...);
empireState[102] = new Story ("The Top One", ...);

Можно ли объявить произвольный метод (или хотя бы свойство), к которому можно было
бы обращаться так же?
Например, так (код естественно не рабочий, но примерно описывающий, что нужно):
public class Skyscraper
{
  Story[] stories;
  public default Story {
     get { return storie; }
     set { storie = value; }
  }
  ...
}

....

Skyscraper empireState = new Skyscraper (...);
empireState = "The Top One";
    


Ответы

Ответ 1



class Skyscraper { public static implicit operator Skyscraper(string str) { var skyScraper = new Skyscraper(...); skyScraper[102] = new Story (str, ...); return skyScraper; } } ... Skyscraper empireState = new Skyscraper (...); empireState = "The Top One"; implicit operator

Комментариев нет:

Отправить комментарий