Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/25: Рейтинг темы: голосов - 25, средняя оценка - 4.72
0 / 3 / 0
Регистрация: 19.03.2015
Сообщений: 10

Методы через точку?

26.02.2018, 23:30. Показов 4929. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте
Не мог бы кто ни будь подсказать как правильно реализовать такую конструкцию

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class Myclass {
 
            public string Metod1()
            {
               //работа с текстом
              return  Metod1 + "1"; 
            }
 
            public string  Metod2()
            {
              //работа с текстом
                return Metod2 + "2";
            }
 
            public string  Metod3()
            {
                //работа с текстом
                 return Metod3+" 3";
            }
        }
 
-------------------------------------------------------------
 
Metodi p = new Metodi;
 
 p.Metod1.Metod2.Metod3();
Чтобы получилась типа строка p = "123"

Я знаю про методы расширение и про fluent builder. Это не то, мне интересно именно работа с методами таким обзором.
К примеру как это реализовано webBrowser.Document.Body.GetAttributeNod e()

Буду очень благодарен если объясните как это сделать и укажете на то какую тему в с# разобрать.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.02.2018, 23:30
Ответы с готовыми решениями:

Как правильно перечислять методы через точку?
Здравствуйте Не мог бы кто ни будь подсказать как правильно реализовать такую конструкцию class Metodi { public...

Как понять, когда писать через точку (например, TextBlock.ToolTip), а когда не через точку?
<StackPanel> <TextBlock Text="TextTooltip 1" ToolTip="Hello Tooltip" /> <TextBlock Text="TextTooltip 2"> ...

Математические методы поиска функций проходящих через точку
Доброго времени суток. В прикрепленном изображении мне известны функции описывающие верхнюю и нижнюю дуги, левую и правую параболу....

7
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,575
26.02.2018, 23:38
Вы уже который раз создаете тему с этим вопросом: Как правильно перечислять методы через точку?
Ничего нового вам не скажут.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
    class Myclass
    {
        private string field;
 
        public string Value => field;
 
        public Myclass Metod1()
        {
            //работа с текстом
            field = field + "1";
            return this;
        }
 
        public Myclass Metod2()
        {
            //работа с текстом
            field = field + "2";
            return this;
        }
 
        public Myclass Metod3()
        {
            //работа с текстом
            field = field + "3";
            return this;
        }
 
        public override string ToString()
        {
            return field;
        }
    }
C#
1
string str = new Myclass().Metod1().Metod2().Metod3().Value;
0
0 / 3 / 0
Регистрация: 19.03.2015
Сообщений: 10
27.02.2018, 00:10  [ТС]
Someone007, Вы мне все не ото твердите!!!
В вашем примере методы не связные между сабо, и информация между методами передается через глобальную переменную.
А мне нужно чтобы все происходивший как в примере webBrowser.Document.Body.GetAttributeNod e(). Каждый метод связанный и не может вызываться по отдельности ((
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,575
27.02.2018, 00:16
Цитата Сообщение от leonid4244 Посмотреть сообщение
В вашем примере методы не связные между сабо, и информация между методами передается через глобальную переменную.
Что? Все связано. Никакой глобальной переменной нет.
Цитата Сообщение от leonid4244 Посмотреть сообщение
примере webBrowser.Document.Body.GetAttributeNod e()
Где пример то?
Цитата Сообщение от leonid4244 Посмотреть сообщение
Каждый метод связанный и не может вызываться по отдельности
Это как?
0
0 / 3 / 0
Регистрация: 19.03.2015
Сообщений: 10
27.02.2018, 00:49  [ТС]
Someone007,
Цитата Сообщение от Someone007 Посмотреть сообщение
Цитата Сообщение от leonid4244 Посмотреть сообщение
Каждый метод связанный и не может вызываться по отдельности
Это как?
К примеру ели делать как вы говорите то вот такой пример
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 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;
        }
}
Теперь если я создам объект
C#
1
Myclass p = new Myclass();
Теперь я могу обратиться к любому из этих методов
C#
1
р.Metod1("fsdfsd")
или
C#
1
p.intMetod2(12)
или
C#
1
 p.Metod1("fsdfsd").intMetod2(12)
или
C#
1
  p.intMetod2(12).Metod1("fsdfsd")
мне так не надо!!!

Мне нужно чтоб можно было обращать строго через метод
C#
1
р.Metod1("fsdfsd")
к любому из 2-х методов
C#
1
p.intMetod2(12), p.intMetod3(12)
. Как то так
C#
1
p.Metod1("fsdfsd").intMetod2(12)
или так
C#
1
p.Metod1("fsdfsd").intMetod3(12)
Тук же нужно чтобы метод Metod1 был int и передавался в методы intMetod2 и intMetod3. Чтобы не использовать переменю int1.
Надеюсь теперь стало понятней. Вы извините что так плохо разъясняю.
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,575
27.02.2018, 01:24
Цитата Сообщение от leonid4244 Посмотреть сообщение
Теперь я могу обратиться к любому из этих методов
мне так не надо!!!
Мне нужно чтоб можно было обращать строго через метод
Почему не надо? Что мешает не вызывать методы intMetod2, intMetod3 до вызова Metod1? Можете даже проверку добавить чтобы нельзя было вызвать один метод до вызова другого...

И вообще, по моему ваша хотелка из разряда хочу то, незнаю что... Ибо мне до сих пор не понятно зачем все это и что в итоге должно получиться...

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
    class MyClass
    {
        private string field;
 
        public MyClass2 Metod1(string s)
        {
            field = field + s;
            return new MyClass2();
        }
    }
 
    class MyClass2
    {
        private int field2;
 
        public MyClass2 Metod2(int i)
        {
            field2 = field2 + i;
            return this;
        }
 
        public MyClass2 Metod3(int i)
        {
            field2 = field2 / i;
            return this;
        }
    }
C#
1
2
3
MyClass p = new MyClass();
p.Metod1("fsdfsd").Metod2(12);
p.Metod1("fsdfsd").Metod3(12);
0
 Аватар для _katon_
414 / 265 / 25
Регистрация: 03.10.2011
Сообщений: 1,094
27.02.2018, 07:50
leonid4244, вот как внутри (приблизительно и очень упрощенно) устроена конструкция которую вы для примера указали:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
    //webBrowser.Document.Body.GetAttributeNode()
    public class WebBrowser
    {
        private Document document;
        public Document Document
        {
            get
            {
                return document;
            }
        }
    }
 
    public class Document
    {
        private Body body;
        public Body Body
        {
            get
            {
                return body;
            }
        }
    }
 
    public class Body
    {
        public string GetAttributeNode()
        {
            return "result";
        }
    }
Это если я правильно понял чего вы хотите, потому как ваши вопросы (без обид) туманны.
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
27.02.2018, 08:43
Цитата Сообщение от leonid4244 Посмотреть сообщение
Мне нужно чтоб можно было обращать строго через метод
Значит методов Method2 и Method3 не должно быть в классе Myclass, а они должны быть в другом классе, ссылку на который будет возвращать Method1:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
class Myclass {
 
            public Method1Result Metod1()
            {
               //работа с текстом
              return  new Method1Result("1"); 
            }
        }
 
class Method1Result
{
   private readonly string _value;
 
   public Method1Result(string value)
   {
      _value = value;
   }
 
   public Method2Result Metod2()
   {
      //работа с текстом
     return new Method2Result(_value + "2");
   }
}
 
class Method2Result
{
   private readonly string _value;
 
   public Method2Result(string value)
   {
      _value = value;
   }
 
   public string  Metod3()
   {
      //работа с текстом
      return _value +" 3";
   }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.02.2018, 08:43
Помогаю со студенческими работами здесь

Почему при обращении к методам класса через точку VS показывает в том числе и private методы унаследованного класса?
Есть три класса. Каждый наследует другой с модификатором наследования private. Соответственно компилятор выдаёт ошибку при обращении...

Почему VS при обращении к методам класса через точку показывает в том числе и private методы унаследованного класса?
Есть два класса. Один наследует другой с модификатором наследования private. Соответственно компилятор выдаёт ошибку при обращении объекта...

Составить каноническое уравнение прямой, проходящей через точку М1 и точку М2 пересечения прямой L и плоскости
M1(1;-3;4) L: (x+1)/2=(y-2)/-1=(z+2)/2 - каноническое уравнение прямой П: x-2y-2z+1=0 - уравнение плоскости

Через линию пересечения плоскостей провести плоскость, проходящую через точку
через линию пересечения плоскостей 4x-y+3z-1=0 и x+5y-z+2=0 провести плоскость, проходящую через точку М(1;1;1)

ноутбук через wi-fi видит другой компьютер в сети, через lan - только точку доступа
подскажите, поднаучите. вроде бы абсолютно одинаковые настройки, скорее всего - все по умолчанию. через lan карту видно мой домашний...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значения справочника
Maks 21.03.2026
Процедура ВодителиНачалоВыбора(Элемент, ДанныеВыбора, ВыборДобавлением, СтандартнаяОбработка) / / Отключаем стандартную обработку (стандартное открытие формы выбора без фильтров) . . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru