Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Фигурные макросы? Добавлено: 09.03.10 22:39  

Автор вопроса:  VβÐUηìt | Web-сайт: смекаешь.рф
Вобщем, я сделал функцию, которая принимает в качестве аргумента код (анонимный метод), выполняет его в отдельном потоке, а сама в это время выводит "подождите...". Пользоваться ей так:


DoWait( delegate{
//Тут код
};

Но это немножко неудобно - много букофф. Хочется сократить до такой конструкции:

dowait {
//Тут код
};

В C++ для подобных дел есть макросы и всякие там инструкции компилятору (как точно называется не помню). И с помощью них подобное вроде можно делать. Вопрос такой: можно-ли как нибудь засунуть в C# свою конструкцию подобного вида, не пребегая при этом к большим развратным изяществам?

Заранее благодарен.

Ответить

  Ответы Всего ответов: 7  

Номер ответа: 1
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #1
Добавлено: 09.03.10 22:39
*Поправочка
  1. DoWait( delegate{
  2. //Тут код
  3. });

Ответить

Номер ответа: 2
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #2 Добавлено: 09.03.10 23:00
  1.         static void Main(string[] args)
  2.         {
  3.             DoWait(() =>
  4.                 {
  5.                     for (int i = 0; i < 10; i++)
  6.                     {
  7.                         Console.WriteLine(i);
  8.                         System.Threading.Thread.Sleep(TimeSpan.FromSeconds(1));
  9.                     }
  10.                 });
  11.             Console.ReadLine();
  12.         }
  13.  
  14.         public static void DoWait(Action methodBody)
  15.         {
  16.             System.Threading.Thread thread = new System.Threading.Thread(() =>
  17.             {
  18.                 Console.WriteLine("Подождите");
  19.                 methodBody();
  20.                 Console.WriteLine("Готово");
  21.             });
  22.             thread.Start();
  23.         }

Ответить

Номер ответа: 3
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #3
Добавлено: 10.03.10 17:49
Лямбда, если не ошибаюсь? Тоже хорошо. Однако короче ее не сделать? Чтобы вообще в ноль - слово и фигурные скобки?

Ответить

Номер ответа: 4
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #4 Добавлено: 10.03.10 18:40
Зачем еще кроче? Это ж не чемпионат по лаконичности

Ответить

Номер ответа: 5
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #5
Добавлено: 10.03.10 20:10
Ну чтоб удобно было :) чтоб не отставать от delegate {...}

Ответить

Номер ответа: 6
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #6 Добавлено: 11.03.10 02:21
VBD, это дотнэт, но не настолько же, и чем тебе выражение не нравится? Вполне себе нормальное такое :)

Ответить

Номер ответа: 7
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #7
Добавлено: 11.03.10 10:55
Не, ну я не настаиваю, просто когда много скобок, можно запутаться, и код не наглядный. Ну если нельзя, то ладно. :)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам