Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.02.2018, 01:21   #1
leonid44
Новичок
Джуниор
 
Регистрация: 05.08.2016
Сообщений: 1
По умолчанию Методы через точку? - C#

Здравствуйте
Не мог бы кто ни будь подсказать как правильно реализовать такую конструкцию
К примеру ели делать вот такой пример
Код:
class Myclass
    {
        private string field;
 
        privat int int1;
 
        public Myclass Metod1(string s)
        {
            int = (int)s
            return this;
        }
 
        public Myclass intMetod2(int i)
        {
            
            field = (string)int1+i
            return this;
        }
 
        public Myclass intMetod3(int i)
        {
            
            field = (string)int1/i
           return this;
        }
}
Теперь если я создам объект
Код:
Myclass p = new Myclass();
Теперь я могу обратиться к любому из этих методов
Код:
р.Metod1("fsdfsd")
или
Код:
p.intMetod2(12)
или
Код:
 p.Metod1("fsdfsd").intMetod2(12)
или
Код:
  p.intMetod2(12).Metod1("fsdfsd")
мне так не надо!!!

Мне нужно чтоб можно было обращать строго через метод
Код:
р.Metod1("fsdfsd")
к любому из 2-х методов
Код:
p.intMetod2(12), p.intMetod3(12)
Как то так
Код:
p.Metod1("fsdfsd").intMetod2(12)
или так
Код:
p.Metod1("fsdfsd").intMetod3(12)
Тук же нужно чтобы метод Metod1 был int и передавался в методы intMetod2 и intMetod3. Чтобы не использовать переменю int1.
Надеюсь теперь стало понятней. Вы извините что так плохо разъясняю.
leonid44 вне форума Ответить с цитированием
Старый 27.02.2018, 20:40   #2
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

вообще это что-то типа Fluent API, можно погуглить.
как вариант: вспомогательные классы создавать
Код:
public class MyClassBuilder
{
  private int int1;

  public MyClassBuilder(int i)
  {
    int1 = i;
  }

  public Myclass intMetod2(int i)
        {
            return new MyClass((string)int1 + i);
        }
 
        public Myclass intMetod3(int i)
        {
           return new MyClass((string)int1/i);
        }
}

public class MyClass
{
  private string field;

  internal MyClass(string f)
  {
    field = f;
  }

  public static MyClassBuilder Metod1(int i)
  {
    return new MyClassBuilder(i);
  }
}
использовать в итоге так:
Код:
var p = MyClass.Metod1(12).intMetod2(18);
pu4koff вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
vba программа не распознает дробные числа через точку fadrok Помощь студентам 3 13.01.2018 10:42
программа не распознает дробные числа через точку. fadrok Microsoft Office Excel 4 12.01.2018 21:01
Решить задачу: Найдите кривую , проходящую через точку А(1;2) , для которой длина отрезка оси абсцисс , отсекаемого касательной... Фима Помощь студентам 2 14.12.2015 21:43
Синглтон. Исключение при вызове метода через глобальную точку доступа. clions C# (си шарп) 3 13.04.2012 21:09
tchart - Как при наведении курсора на определенную точку сериэса узнать точку наведения и отобразить её xaero93 Помощь студентам 0 22.04.2009 19:28