powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / IntelliSense для Func<> Action<> ?
77 сообщений из 77, показаны все 4 страниц
IntelliSense для Func<> Action<> ?
    #38843343
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как сделать, чтобы IntelliSense показывал мои заданные имена для параметров, а не arg1, arg2, arg3.... не красиво ведь !
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38843345
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто очень глаза режет. Сильно снижает ценность от Func<>
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38843347
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пример функции
Код: c#
1.
2.
Func<string, bool> MyFunc = ((name) => { return true; });
MyFunc () << IntelliSense покажет arg1 а не name !
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38843357
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
        /// <summary>
        /// sdf
        /// </summary>
        /// <param name="s1">sdf</param>
        /// <param name="s2">sdf</param>
        /// <param name="s3">sdf</param>
        /// <param name="s4">sdf</param>
        /// <returns></returns>
        private static bool MyMethod(string s1, string s2, string s3, string s4)
        {
            return false;
        }



тоже не помогает
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38843393
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotekПросто очень глаза режет. Сильно снижает ценность от Func<>

Галаза режит говриш...
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38843397
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не критичная проблема, но можно было бы и запилить её. Видимо разрабы забили.
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38843430
Awaiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
МСУНе критичная проблема, но можно было бы и запилить её. Видимо разрабы забили.

Ну не скажите :( В методе из 5-ти параметров (особенно если они одно-типные) уже неприятно. Приходится быть внимательней или не пользоваться.
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38843433
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУНе критичная проблема, но можно было бы и запилить её. Видимо разрабы забили.

ничего они не забыли, делегату пох чего ему там присвоили
к тому же, сдаётся мне, что это баян
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38843447
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,
++
обыкновенный делегат который инициализируется по месту указателем на ф. или на ранее созданную.
можно удирать по нему F12 и посмотреть как он объявлен в методанных.
если уже невтерпеж, можно сделать своё объявление - "перекрыть"
delegate TResult Func<in T, out TResult>(T myArg);
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38843586
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotekКак сделать, чтобы IntelliSense показывал мои заданные имена для параметров, а не arg1, arg2, arg3.... не красиво ведь !
Переходи на F#, он легко разруливает такие штуки!
Код: c#
1.
2.
3.
4.
let f (a:double, b:double) = 
    a * b
f (3.0, 7.2) |>
System.Console.WriteLine
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38843819
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я выходец из Дельфи.

Мои эксперименты в массовом использовании Func<> Action<> заключались в попытке перенести из мира Дельфи "встроенные функции". Очень жаль, что аналогов в C# нету. Func и Action могли бы стать отличнейшей заменой ! Правда есть огромные сомнения в производительности, что и вынудило отказаться от идеи.
Кто знает ? Func и Action создают новый класс для каждой лямбды или встраивают метод в класс в котором были объявлены ?
Т.е. в таком коде:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
public class MyClass
{
  public void Method ()
  {
     Func <int, bool> func1 ....
     Func <str, str> func2....
     Action <int>  act1....
  }
}


Компилятор на выходе создаст 3 отдельных класса + MyClass?

Благодаря вложенным функциям, в Дельфи было легко и приятно писать "Как Мартин Фаулер завещал" (здоровья ему :) ) - по максимуму вынося весь код в подфункции.
Да, можно создать отдельный класс и создавать в нем приватные функции. Но есть масса примеров, когда вынесение кода в функцию класса не практично. Примеры - проверка входных параметров, различные валидации внутри функции, маппирование объектов. Все это можно вынести в отдельные функции, но что если функции нужно СТРОГО И ТОЛЬКО в данной функции ?

Например проверка входных параметров в функцию контроллера Asp.net MVC. Приходит 15ть параметров модели, которые нужно проверить. Выносить в отдельную функцию бесмысленно. Чтобы не замусоривать класс, т.к. эти входные параметры строго индивидуальны для данного метода.
В Дельфи подобное легко оформлялось в подфункции.
В C# придется делать приватный метод и визуально захламлять интерфейс контроллера. В итоге вместо 5 методов контроллера + 2,3 приватных общих, получаем 20 методов, из которых 15 используются строго в одном методе. Есть разница ? :) Не получится писать красивый код, состоящий из сплошных вызовов подфункций.
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38843834
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
  public class MyClass
    {
        public void Method()
        {
            Func<int, bool> func1 = i => i > 0;
            Func<string, string> func2 = s => s;
            Action<int> act1 = i => i++;
        }
    }


Код: 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.
41.
42.
43.
44.
45.
46.
47.
using System;
using System.Runtime.CompilerServices;
namespace ConsoleApplication1
{
	public class MyClass
	{
		[CompilerGenerated]
		private static Func<int, bool> CS$<>9__CachedAnonymousMethodDelegate3;
		[CompilerGenerated]
		private static Func<string, string> CS$<>9__CachedAnonymousMethodDelegate4;
		[CompilerGenerated]
		private static Action<int> CS$<>9__CachedAnonymousMethodDelegate5;
		public void Method()
		{
			if (MyClass.CS$<>9__CachedAnonymousMethodDelegate3 == null)
			{
				MyClass.CS$<>9__CachedAnonymousMethodDelegate3 = new Func<int, bool>(MyClass.<Method>b__0);
			}
			Func<int, bool> cS$<>9__CachedAnonymousMethodDelegate = MyClass.CS$<>9__CachedAnonymousMethodDelegate3;
			if (MyClass.CS$<>9__CachedAnonymousMethodDelegate4 == null)
			{
				MyClass.CS$<>9__CachedAnonymousMethodDelegate4 = new Func<string, string>(MyClass.<Method>b__1);
			}
			Func<string, string> cS$<>9__CachedAnonymousMethodDelegate2 = MyClass.CS$<>9__CachedAnonymousMethodDelegate4;
			if (MyClass.CS$<>9__CachedAnonymousMethodDelegate5 == null)
			{
				MyClass.CS$<>9__CachedAnonymousMethodDelegate5 = new Action<int>(MyClass.<Method>b__2);
			}
			Action<int> cS$<>9__CachedAnonymousMethodDelegate3 = MyClass.CS$<>9__CachedAnonymousMethodDelegate5;
		}
		[CompilerGenerated]
		private static bool <Method>b__0(int i)
		{
			return i > 0;
		}
		[CompilerGenerated]
		private static string <Method>b__1(string s)
		{
			return s;
		}
		[CompilerGenerated]
		private static void <Method>b__2(int i)
		{
			i++;
		}
	}
}
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38843842
Ilya81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotekЯ выходец из Дельфи.

Мои эксперименты в массовом использовании Func<> Action<> заключались в попытке перенести из мира Дельфи "встроенные функции". Очень жаль, что аналогов в C# нету. Func и Action могли бы стать отличнейшей заменой ! Правда есть огромные сомнения в производительности, что и вынудило отказаться от идеи.
Кто знает ? Func и Action создают новый класс для каждой лямбды или встраивают метод в класс в котором были объявлены ?
Т.е. в таком коде:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
public class MyClass
{
  public void Method ()
  {
     Func <int, bool> func1 ....
     Func <str, str> func2....
     Action <int>  act1....
  }
}


Компилятор на выходе создаст 3 отдельных класса + MyClass?

Благодаря вложенным функциям, в Дельфи было легко и приятно писать "Как Мартин Фаулер завещал" (здоровья ему :) ) - по максимуму вынося весь код в подфункции.
Да, можно создать отдельный класс и создавать в нем приватные функции. Но есть масса примеров, когда вынесение кода в функцию класса не практично. Примеры - проверка входных параметров, различные валидации внутри функции, маппирование объектов. Все это можно вынести в отдельные функции, но что если функции нужно СТРОГО И ТОЛЬКО в данной функции ?

Например проверка входных параметров в функцию контроллера Asp.net MVC. Приходит 15ть параметров модели, которые нужно проверить. Выносить в отдельную функцию бесмысленно. Чтобы не замусоривать класс, т.к. эти входные параметры строго индивидуальны для данного метода.
В Дельфи подобное легко оформлялось в подфункции.
В C# придется делать приватный метод и визуально захламлять интерфейс контроллера. В итоге вместо 5 методов контроллера + 2,3 приватных общих, получаем 20 методов, из которых 15 используются строго в одном методе. Есть разница ? :) Не получится писать красивый код, состоящий из сплошных вызовов подфункций.

Рекомендую побольше почитать на эту тему (как с этим дела в Delphi, не знаю).
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38843844
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВ,

Великолепно !!!

Значит, все таки Func и Action можно использовать как замену вложенным функциям !! Компилятор обернул все так как и нужно - в статические методы.
В принципе, я на это надеялся :) Верил, что разработчики не глупы.

Остается проблема, описанная в топике... :) Что IntelliSense не выводит нормальные имена.
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38843846
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ilya81,

Паттерны я знаю :)
Вопрос стоял о читаемости кода, а это уже Мартин Фаулер с идеей минимальных и читабельных методов.
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38843850
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotek,
вас не смущает что это делегаты, и иницализируются они простыми указателями ?
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38843852
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степи,

А что должно смущать ? Типобезопасность ?
То, что это делегаты, инициализирующиеся указателями на функции - так это же и отлично. Производительность максимальна.

В чем проблема ? :)
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38843853
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotekЕвгенийВ,

Великолепно !!!

Значит, все таки Func и Action можно использовать как замену вложенным функциям !! Компилятор обернул все так как и нужно - в статические методы.
В принципе, я на это надеялся :) Верил, что разработчики не глупы.

Остается проблема, описанная в топике... :) Что IntelliSense не выводит нормальные имена.
Так сделай статический класс и помести туда нужные тебе методы, смотри например класс Math.
Хотя многие делфисты не в курсе, что у них статические методы и class procedure/function, что для меня было шоком.

C# полностью (почти) ОО язык, забудь про процедурное программирование и методы вне класса!
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38843857
Ilya81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotekIlya81,

Паттерны я знаю :)
Вопрос стоял о читаемости кода, а это уже Мартин Фаулер с идеей минимальных и читабельных методов.
Ну так используйте Helper (или Decorator, или ещё что, что больше подходит к задаче). Ничего нового здесь придумывать не надо, всё уже придумано.
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38843860
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВ,

Так я об этом и говорю, что вынесение метода в приватный метод - ЗАМУСОРИВАЕТ код. Мы выносим метод в общий интерфейс класса, который используется лишь одним единственным методом.
Или вы предлагаете на каждый метод создавать отдельный класс ? Будет головняк с общими методами. Придется делать иерархию классов и выносить общие методы в базовых класс... Кхм, отличная альтернатива вложенным функциям ;)

Не знаю, что за дельфисты не знают, что class function/procedure это синоним статической функции, разве что студенты может быть ? :)
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38843863
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotek,
проблема в вашей "читаемости" и причем тут читаемость? тип делегата и название аргумента задается при объявлении
делегата, но не как при его инициализации, мало того может быть ветвленная инициализация разными функциями
с разным названием аргуметов, и что вы там замечтаете увидеть в intelisense ?
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38843868
Ilya81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotekЕвгенийВ,

Так я об этом и говорю, что вынесение метода в приватный метод - ЗАМУСОРИВАЕТ код. Мы выносим метод в общий интерфейс класса, который используется лишь одним единственным методом.
Или вы предлагаете на каждый метод создавать отдельный класс ? Будет головняк с общими методами. Придется делать иерархию классов и выносить общие методы в базовых класс... Кхм, отличная альтернатива вложенным функциям ;)

Не знаю, что за дельфисты не знают, что class function/procedure это синоним статической функции, разве что студенты может быть ? :)

Зачем отдельный класс на каждый метод - объединяйте схожие по назначению методы в статические классы, а классы в namespace'ы - по мне вполне логичная иерархия вспомогательных функций. При этом желательно учитывать используемые в них типы данных (принципы, одно из названий которых - S.O.L.I.D).
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38843873
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotekНе знаю, что за дельфисты не знают, что class function/procedure это синоним статической функции, разве что студенты может быть ? :)
Есть отличия? Если есть то в чем?
Код: pascal
1.
class function Proc(Param: Pointer): DWord; stdcall;


Код: pascal
1.
class function Proc(Param: Pointer): DWord; stdcall; static;
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38843892
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВ
Код: pascal
1.
class function Proc(Param: Pointer): DWord; stdcall;


Код: pascal
1.
class function Proc(Param: Pointer): DWord; stdcall; static;



Нинаю :)
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38843896
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВ,

Часто вы этим пользуетесь ? :)
Я не претендую на гуру.
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38843902
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степи,

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

Я лишь жалею, что IntelliSense не может динамически вычислить имена параметров, когда, в принципе, это можно было бы и сделать на программном уровне.
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38843909
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВЕсть отличия? Если есть то в чем?
[/src]


http://www.gunsmoker.ru/2008/12/static-delphi.html
Классовый метод можно объявить статическим (только в новых версиях Delphi)

Я только на Delphi 7 работал. ВИдимо по этому и не знаю про это ключевое слово. Про stdcall то знаю - это порядок передачи параметров методов, что важно для работы DLL и COM.
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38843922
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ilya81Зачем отдельный класс на каждый метод - объединяйте схожие по назначению методы в статические классы,

И что, проверку входных параметров, какого нибудь MVC контроллера, из 15ти параметров вынести в отдельный статический класс ? И туда же кинуть валидацию для остальных методов контроллера ?

Я могу лишь оставить код в самом методе. И будет полотно. Которые в принципе можно спрятать под #region - но это не одно и тоже, что настоящая функция, т.к. не позволяет сделать вызов и придется разворачивать это полотно, чтобы увидеть что же там делается то.

Либо я могу вынести валидацию входных параметров метода в отдельный приватный метод... Ну да круто. 5 публичных методов, и каждый имеет еще по приватному методу, проверяющему входные парметры. А потом добавить еще 5 методов для маппирования входных параметров в объектную сущность-модель. А потом еще по 5.... Круто.
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38843929
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotekЯ лишь жалею, что IntelliSense не может динамически вычислить имена параметров, когда, в принципе, это можно было бы и сделать на программном уровне.
позанимаемся спиритизмом ))
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
  private static Func<string, string> _sd = null;

        private static string Foo(string df)
        {
            return df;
        }

        private static void Main(string[] args)
        {
            if (args.Any())
            {
                _sd = s => "d";
            }
            else
            {
                _sd = Foo;
            }
            var res = _sd("df"); //  и что вы тут хотите увидеть в  IntelliSense ??????????????
            Console.WriteLine(res);
        }
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38843936
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степипозанимаемся спиритизмом ))
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
  private static Func<string, string> _sd = null;

        private static string Foo(string df)
        {
            return df;
        }

        private static void Main(string[] args)
        {
            if (args.Any())
            {
                _sd = s => "d";
            }
            else
            {
                _sd = Foo;
            }
            var res = _sd("df"); //  и что вы тут хотите увидеть в  IntelliSense ??????????????
            Console.WriteLine(res);
        }



Хорошо, хорошо. Согласен.

Вывод просто. В C# нет аналогов вложенных функций. Вот и весь вывод. Я об этом жалею.
Func, Action может являться лишь некоей заменой.
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38843976
Ilya81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotekIlya81Зачем отдельный класс на каждый метод - объединяйте схожие по назначению методы в статические классы,

И что, проверку входных параметров, какого нибудь MVC контроллера, из 15ти параметров вынести в отдельный статический класс ? И туда же кинуть валидацию для остальных методов контроллера ?

Я могу лишь оставить код в самом методе. И будет полотно. Которые в принципе можно спрятать под #region - но это не одно и тоже, что настоящая функция, т.к. не позволяет сделать вызов и придется разворачивать это полотно, чтобы увидеть что же там делается то.

Либо я могу вынести валидацию входных параметров метода в отдельный приватный метод... Ну да круто. 5 публичных методов, и каждый имеет еще по приватному методу, проверяющему входные парметры. А потом добавить еще 5 методов для маппирования входных параметров в объектную сущность-модель. А потом еще по 5.... Круто.
Нужно много параметров передать в какой-то метод - объединяйте в классы. Нужно много параметров для создания класса - создавайте его через Builder. Всё-таки разберитесь получше в шаблонах проектирования, такие вопросы говорят об их слабом знании.
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38843992
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotek,
авторИ что, проверку входных параметров, какого нибудь MVC контроллера, из 15ти параметров вынести в отдельный статический класс ? И туда же кинуть валидацию для остальных методов контроллера ?
если вы о asp.net mvc то статик туда не влезет
валидация изнутри? , делается снаружи и через атрибуты.
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38844007
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotekВывод просто. В C# нет аналогов вложенных функций. Вот и весь вывод. Я об этом жалею.
Func, Action может являться лишь некоей заменой.

На кой ляд нужны вложенные в функции функции? Какую задачу они решают? Я просто тупо не вдупляюсь.
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38844008
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotekFunc, Action может являться лишь некоей заменой.

Не являются они заменой вложенных функций. Ни в коем случае! Так даже рассуждать неприлично.
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38844011
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotekЯ лишь жалею, что IntelliSense не может динамически вычислить имена параметров, когда, в принципе, это можно было бы и сделать на программном уровне.

Это банально от не понимания. Это с опытом испарится полностью. Если даже опыт не поможет, то это уже безнадёжно. Можешь дальше расстраиваться абсолютно по глупому и бесполезному поводу.
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38844016
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,
мне вот интересно , ну лень искать, как их компилятор интерпретирует в стек вызовов: дробление основной функции на мелкие
или вызов подфункции из основной через указатель или еще как?
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38844017
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степи,

Да суть не в конкретной проблеме.
Я знаю, что в MVC можно сделать валидацию модели атрибутами или даже сделать само-валидируемую модель.
У меня просто есть желание писать код в стиле Дельфи:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
public void MyMethod ()
{
   if (!Check())
     DoMethod1();

   var myValue = ConstructValue();
   var processedValue = ProcessValue()
   ...
}



Красиво же ? Желаю, чтобы Check, ConstructValue и ProcessValue были вложенными методами, а не методами класса.

Ладно. Проехали.
Буду пилить через Func. Создавал топик лишь чтобы узнать есть ли возможность получить красивый результат. Нету и нету.
Закрываем темку :)
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38844018
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степиhVostt,
мне вот интересно , ну лень искать, как их компилятор интерпретирует в стек вызовов: дробление основной функции на мелкие
или вызов подфункции из основной через указатель или еще как?

Кого, делегаты? Анонимные делегаты такие же, как и именованные функции, только анонимные.
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38844019
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttНа кой ляд нужны вложенные в функции функции? Какую задачу они решают? Я просто тупо не вдупляюсь.

Оу.. Почитайте книгу дедушки Файлера. Рефакторинг :)

http://refactoring.guru/catalog
http://rsdn.ru/res/book/prog/refactoring.xml

Особенно "6. Составление методов"
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38844020
Ilya81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В принципе, на мой взгляд именование параметров может быть полезным но не для этого, а для того, для чего их чаще всего применяют в F# (ну или как замену Prolog'у и т. п.). Но если pattern matching уже относительно скоро в C# планируется, авось со временем и другие полезные возможности приделают.
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38844022
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotekКрасиво же ? Желаю, чтобы Check, ConstructValue и ProcessValue были вложенными методами, а не методами класса.

Ничего красивого в этом нет, раздувается код родительской функции -- что В ЛЮБОМ СЛУЧАЕ ПЛОХО.

ProBiotekБуду пилить через Func. Создавал топик лишь чтобы узнать есть ли возможность получить красивый результат. Нету и нету.

Ты ещё попробуй навязать способ программирования, который принят в дельфях, в яваскрипте, в лиспе, в хаскеле, ещё где-нибудь. На лицо закостенелость мышления и давление привычек. Советую не навязывать способ разработки принятый в одной среде, в другую -- это всегда плохо кончится, при чём для тебя. Серьёзно. Никто же в дельфи не лезет с мудацким «а вот в сишарпе не тааа-ааа-к». Это не профессионально, и глупо.
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38844026
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotekОу.. Почитайте книгу дедушки Файлера. Рефакторинг :)

Почитайте http://msdn.microsoft.com/ru-ru/library/ms173171.aspx%5D]http://msdn.microsoft.com/ru-ru/library/ms173171.aspx] про делегаты.
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38844027
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttГде-то в степиhVostt,
мне вот интересно , ну лень искать, как их компилятор интерпретирует в стек вызовов: дробление основной функции на мелкие
или вызов подфункции из основной через указатель или еще как?

Кого, делегаты? Анонимные делегаты такие же, как и именованные функции, только анонимные.
вложенные функции и процедуры!
интересно узнать у Пасклистов, как взять указатель на вложенную функцию?
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38844029
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttНичего красивого в этом нет,

http://refactoring.guru/extract-method

Изучайте изучайте сайт и книгу, Уважаемый :)
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38844030
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotek http://refactoring.guru/extract-method

Изучайте изучайте сайт и книгу, Уважаемый :)

Пока что я вижу, что Вы сами ничего их вышеперечисленного не читали.
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38844031
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рефакторинг - это как игра в наперстки, пишем говнокод , а потом его улучшаем т.е. всегда при деле и при у.е.
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38844032
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степивложенные функции и процедуры!
интересно узнать у Пасклистов, как взять указатель на вложенную функцию?

Я сомневаюсь, что у Пасклистов можно хоть что-нибудь полезного узнать. Уровень очень низкий. Плюются ссылками на книги, которые сами даже не открывали.
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38844034
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степикак взять указатель на вложенную функцию?

Этого и не нужно !
Они не для того. А для красивого и понятного кода.

Вот тут хорошо об этом написано:
http://www.apofig.com/2009/12/extract-method-1.html
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38844037
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotek,
авторпросто есть желание писать код в стиле Дельфи
пишите, в чем проблема?- но на Делфи, командная разработка? - не не слышал..
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38844038
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotekОни не для того. А для красивого и понятного кода.



Ноу комментс. Человек просто неадекват.
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38844039
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

Не злите МСУ :) Он из дельфистов.

И зря вы так про Дельфийцев. Те, кто поработал на "низкоуровневом" языке (Дельфи, C++) до C# они гораздо больше понимают. Т.к. не раз и не два писали свои собственные компоненты, видели код VCL и в 90% имели дело с WinApi.
Это хорошая база и фундамент. А уж если и на ассемблере пришлось пописать немного, то вообще замечательно.

А студенты, которые никогда на C++ не создавали свой оконный класс, которые про Message loop никогда не слышали, а сразу сели за "высокоуровневый" C#, вот они действительно ничего не понимают.
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38844040
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степиProBiotek,
авторпросто есть желание писать код в стиле Дельфи
пишите, в чем проблема?- но на Делфи, командная разработка? - не не слышал..

Вот-вот. Я этого никогда не понимал. «ХОЧУ ПЕЙСАТь КАК НА ДЕЛЬФЕЙ» — так пиши на Дельфи, хрен ли ты лезешь туда, чего понять тупо не в состоянии.
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38844042
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotekhVostt,

Не злите МСУ :) Он из дельфистов.

И зря вы так про Дельфийцев. Те, кто поработал на "низкоуровневом" языке (Дельфи, C++) до C# они гораздо больше понимают. Т.к. не раз и не два писали свои собственные компоненты, видели код VCL и в 90% имели дело с WinApi.
Это хорошая база и фундамент. А уж если и на ассемблере пришлось пописать немного, то вообще замечательно.

А студенты, которые никогда на C++ не создавали свой оконный класс, которые про Message loop никогда не слышали, а сразу сели за "высокоуровневый" C#, вот они действительно ничего не понимают.

Я ничего протиф дельфей не имею. Просто если уже начинать спор где чего есть/нет, то дельфи сольёт, я тебе обещаю. Начнём с LINQ, м?
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38844044
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
оу не в курсе, что в Delphi Prism он таки появился
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38844045
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttВот-вот. Я этого никогда не понимал. «ХОЧУ ПЕЙСАТь КАК НА ДЕЛЬФЕЙ» — так пиши на Дельфи, хрен ли ты лезешь туда, чего понять тупо не в состоянии.

Да ну вас...
Я всего лишь спросил в тебе "а есть ли в C# аналог того, что есть в Дельфи". А вы тут себе уже навыдумывали блин чего-то.
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38844046
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что такое красивы код? в контексте программирования, кто знает?
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38844048
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotekДа ну вас...
Я всего лишь спросил в тебе "а есть ли в C# аналог того, что есть в Дельфи". А вы тут себе уже навыдумывали блин чего-то.

Просто изначально вложенные функции не нужны, даже если бы они были, они бесполезны. Для организации кода это только вред, так как функции должны быть как можно меньше и решать одну задачу. Вложенные функции превращают эту идею в какую-то вакханалию. Может сразу внутри функции разрешить создавать свои классы? Отдельные неймспейсы внутри функции? Это всё тонкая грань, чтобы упасть лицом в говнокод.
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38844052
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степичто такое красивы код? в контексте программирования, кто знает?

Красивый и читабельный .


Есть разница ?
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public void foo(List<String> answers) {
    for (int index == 0; index < this.size; index ++) {
        this.answer = answers.get(index);  
        if (this.answer == Answers.DEFAULT_ANSWER) {
            this.count = this.count + SOME_CONSTANT;
        } else {
            this.count = this. count - SOME_CONSTANT;
        }
        this.saveAnswer();
    }
}



и
Код: c#
1.
2.
3.
4.
5.
6.
7.
public void processAnswers(List<String> answers) {
    for (String answer : answers) {
        this.setAnswer(answer);  
        this.changeCounter();
        this.saveAnswer();
    }
}


Сколько секунд вы потратили, чтобы ПОНЯТЬ что делает первый код, а сколько второй ?

Если вы заметили, что второй код понятнее, поздравляю, вы готовы начинать изучать методы рефакторинга, и в частности его паттерн Extract Method, один из полу-сотни паттернов :)
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38844059
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotek,
ответ не верный, читайте вопрос - в контексте программирования, а не в контексте языка!
еще попытка
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38844060
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttПросто изначально вложенные функции не нужны

Да да, раскажите мне, Дельфийцу какие они бесполезные, эти вложенные функции :)

А лучше откройте VCL из Delphi и поизучайте его. Особенно те методы, где есть ассемблерные под-функции.
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38844062
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotek,
ассемблерные вставки, это то чего так не хватает в net!
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38844070
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степиProBiotek,
ответ не верный, читайте вопрос - в контексте программирования, а не в контексте языка!
еще попытка

Ок. Попытка №2.

Именно в констектсе программирования - разбиение метода на подфункции играет огромную роль.Сколько секунд вы потратили на чтение первого примера кода и второго в 17058813 ? Разбивать на функции нужно, это ясно.

Теперь переходим к преимуществам подфункций.
Они не засоряют интерфейс класса!

Чтобы в C# сделать рефакторинг и получить красивый код, нужно сделать еще 3-4 дополнительные метода в классе: проверка валидности входных параметров, биндинг этих параметров на бизнес модель, и т.д. И так для каждого публичного метода.

Причем эти под-методы нужно строго одному методу, который их и использует. Если у вас 5 публичных методов класса получают разные параметры, то им бесполезны методы валидации соседних методов. Для каждого из них придется создать кучу приватных методов в классе.
В итоге в классе будет 5 публичных методов + 20 приватных. 20 это валидация и мапинг, нужные только каждому методу.

Вы тратите внимание при чтении класса, пытаясь осознать все эти 20 методов, когда вам нужно сконцентрироватся на 1 методе.
Подфункции убирают эту проблему . Они хранятся в самом методе и не захламляют интерфейс. Все чисто, читабельно, понятно:

Код: c#
1.
2.
3.
4.
5.
for (String answer : answers) {
        this.setAnswer(answer);  
        this.changeCounter();
        this.saveAnswer();
    }



PS. Что касается производительности.
Компилятору ни-че-го не стоит вынести подфункции в приватные-статические методы класса во время трансляции кода. Что он и делает с лямбдами см 17057449 .
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38844075
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotekДа да, раскажите мне, Дельфийцу какие они бесполезные, эти вложенные функции :)

А лучше откройте VCL из Delphi и поизучайте его. Особенно те методы, где есть ассемблерные под-функции.

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

А теперь с привязкой, архитектура корпоративных приложений предусматривает жёсткую декомпозицию, использование архитектурных шаблонов, куда вложенные функции не укладываются никаким боком.

С практической точки зрения, у тебя одна большая функция, где ты втулил вложенные функции, и в чём проблема? В отсутствии интелисенса? В рамках одного файла, где поднял глаза и нашёл определение?

Проблема высосана из пальца, обсужать её глупо и бесперспективно. Не понимаю даже о чём спич.

И зачем ты мне советуешь лезь в VCL, если мне делфи не нужны ни по работе, ни для души? Зачем мне это? Я не мазохист.
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38844077
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotekТеперь переходим к преимуществам подфункций.
Они не засоряют интерфейс класса!

Про приватные функции, кажется, ты слыхом не слыхивал, да?
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38844080
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotek Подфункции убирают эту проблему . Они хранятся в самом методе и не захламляют интерфейс. Все чисто, читабельно, понятно:

Это какое-то гумно, честно. Я даже обсуждать такой ущербный подход не собираюсь. Функции должны быть короткими (не больше 1-1/2 экрана, за исключением оч. редких случаев), они должны быть выразительными, тестируемыми, с возможностью инъекций, аспектов, контрактов -- это всё вложенным функциям не снилось. Нафиг мне вложенные фукнции? ЧТобы навести ещё больше бардака? Ни одного, ни единого преимущества, поэтому их нет в C#, и никто не жалуется, кроме заблудших дельфистов, которые не умеют быть гибкими.
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38844087
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotek,
программирование уже давно стало групповым ремеслом ( командным ), даже само понятие красивый код
уже подразумевает групповое командное обсуждение.
красивый код это
1 код написанный согласно общепринятым нормам и рекомендациям, ( название типов, переменных, методов и т.д.)
"общепринятым" - читать как красивый в контексте команды или всего языкового сообщества.
P.S. я уж опустил понятие спецификации, ибо он не скомпилится ))
2 Достаточно документированный для быстрой адаптации новых членов команды или для использования
его снаружи.
3 Иметь "моральные скрепы" - обязательства. такие как: не менять состояние объекта без необходимости через события
sender ( трудноуловимое изменение при чужом сопровождении ) или акцентировать это действие, при инициализации по месту
лямбдой , если более трех строчек кода, выделять в отдельный метод и т.д. ( у Липперта много об этом)
ну и все ))
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38844093
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степи,
ну да самое главное забыл, тестируемый ( прочитал хвоста ))
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38844095
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

Я шутливо предложил поглядеть на VCL, чтобы увидеть как используются вложенные функции и как они чистят код в плане читабельности.

Приватные функции как раз и засоряют интерфейс класса.
Программисту, который поддерживает этот класс, без разницы приватные они или нет. Они перед его глазами висят, и рассеивают его внимание. Вглядываясь в 20 методов класса, вернувшись к нему через год, приходится вспоминать для чего эти методы, всем ли методам класса они нужны, или только одному из них.

В принципе можно скрыть вспомогательные методы, которые используют только 1 метод с помощью #region. Но тут появляется некоторый риск, что они случайно "уплывут" от метода, который их использует, если кто-то (да хотя бы и сама среда, когда вы просите ее заимплементить методы интерфейса) добавит свою функцию между.
Вложенные методы просто физически не смогут "уплыть" от использующего их метода. Они в нем. Компилятор без проблем может их вынести в статик методы на этапе компиляции, когда они уже не будут мозолить глаза программисту.. Синтаксический сахар однака :)

Просто, когда я писал на Дельфи, мне было очень приятно писать вложенные методы. Не утверждаю, что без них нельзя жить :) Не делайте их мухи слона. Я не бегаю с воплями "C# плох, там нету того, что есть в Дельфи", и не предлагаю мерятся "кто круче, C# или Дельфи".

Вчера я решил создать эту темку, чтобы узнать нету ли какого-то аналога. Только и всего.
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38844101
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotek,
я просто делюсь
авторОни перед его глазами висят, и рассеивают его внимание. Вглядываясь в 20 методов класса
вполне реально и актуально, я делаю частичный класс и весь мало нужный хлам скидываю туда, что бы не мешался.
авторчерез год, приходится вспоминать для чего эти методы, всем ли методам класса они нужны, или только одному из них.
и такое часто было, чешешь репу, что я тут понаписал, поэтому не ленюсь или подписываю комментариями
или внятное название метода что бы не заблудиться.
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38844113
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степи,

Да, в принципе вложенный класс не протестируешь отдельно. Согласен.
Нужно тестировать сам методы, и вложенный метод должен быть протестирован тем самым.

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

Ок. Может все это и перевешивает плюсы от вложенности методов :)
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38844116
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotekПриватные функции как раз и засоряют интерфейс класса.
Программисту, который поддерживает этот класс, без разницы приватные они или нет. Они перед его глазами висят, и рассеивают его внимание. Вглядываясь в 20 методов класса, вернувшись к нему через год, приходится вспоминать для чего эти методы, всем ли методам класса они нужны, или только одному из них.

В интерфейсе класса есть только публичные функции. Не позорься.


ProBiotekВ принципе можно скрыть вспомогательные методы, которые используют только 1 метод с помощью #region. Но тут появляется некоторый риск, что они случайно "уплывут" от метода, который их использует, если кто-то (да хотя бы и сама среда, когда вы просите ее заимплементить методы интерфейса) добавит свою функцию между.
Вложенные методы просто физически не смогут "уплыть" от использующего их метода. Они в нем. Компилятор без проблем может их вынести в статик методы на этапе компиляции, когда они уже не будут мозолить глаза программисту.. Синтаксический сахар однака :)

При чём тут компилятор. Вложенные функции это что вообще? К чему они относятся? Раздутый код функции с вложенными функциями -- это что? Я скажу что это -- это плохо пахнущий, грязный, плохо поддерживаемый код, не дающий никаких преимуществ. Я чётко знаю, что в функции у меня код, если требуется декомпозиция, код выносится в приватную функцию. Приватные функции не засоряют интерфейс класса, потому что это ИНКАПСУЛЯЦИЯ — слыхал о таком? Ну почитай пару книжек по ООП, Фаулера почитай, по ссылкам которые ты мне скидывал, текст почитай.
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38844122
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotekОк. Может все это и перевешивает плюсы от вложенности методов :)

Дело в том, что вложенные функции изначально не нужны. Тестирование, контракты, аспекты, это да... Но и в целом во вложенных функциях видится только вред, а не польза. Никакой пользы.

Зато скажу в противовес, вот JavaScript вложенные функции -- это гуд, потому что парадигма совсем другая, подходы к разработке совсем другие, язык другой. И надо уметь извлекать пользу от подходов, принятых в каждом отдельном языке программирования.
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38844124
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotekВчера я решил создать эту темку, чтобы узнать нету ли какого-то аналога. Только и всего.

Просто постарайся понять, что Func<> и Action<> не имеет никакого отношения к вложенным функциям, это не аналог, и даже нельзя рассматривать их в таком качестве. Это делегаты. Хочешь, можешь определить именованные делегаты с параметрами, и будет тебе интелесенс.
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38844134
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotek,
авторОк. Может все это и перевешивает плюсы от вложенности методов :)
да бросьте Вы всю эту маниловщину , повзрослейте, тут куча полиглотов пишущих на разных языках и не испытывающих лексическую нужду, у каждого языка есть спецификация исходите из этого
http://blogs.msdn.com/b/ruericlippert/
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38844138
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

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

Ну хотел придумать способ повысить читабельность класса.
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38844143
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotek,
Вы как то фривольно разбрасываетесь словом Интерфейс, хотя я понял в каком контексте вы его употребили, в программировании
оно дуально и поэтому надо всегда его дополнять особенно в контексте кода..
...
Рейтинг: 0 / 0
IntelliSense для Func<> Action<> ?
    #38844158
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotekНу хотел придумать способ повысить читабельность класса.

Ты не отличаешь определение от реализации. В реализации в классе может быть сколько угодно приватных методов, и это никого не должно парить. Для разраба это удобно, так как он знает что все методы, они на уровне класса. В твоём случае разраб должен ебнуть себе мозг на тему где же этот метод находится: в классе или в самой функции. Хорошо ли это? Нет!
...
Рейтинг: 0 / 0
77 сообщений из 77, показаны все 4 страниц
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / IntelliSense для Func<> Action<> ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]