Интерактивный C#



Интерактивный C#

Обновление номер 1 принесло в Visual Studio не только немного изменённую иконку, но и разные другие приятные нововведения.

Кстати, вот как выглядит новая иконка:

Интерактивный C#

Одним из дополнений является «Интерактивный C#».

На самом деле это окно REPL. Аббревиатура REPL означает цикл Read-eval-print (в переводе это будет что-то вроде «чтение-выполнение-отображение, повторение») Название цикла read-eval-print происходит от названий примитивов языка Лисп, реализующих аналогичную функциональность.

Примерно так выглядит программа REPL на Лиспе.

Всего одна строка кода:

  
  
  
  
   

(loop (print (eval (read))))

То есть в первую очередь читается текст, затем выполняется как команда, выводится результат, и все это можно сделать еще раз.

Среда REPL может быть полезна не только для изучения языка, но и для любых экспериментов с API. Его также можно использовать для запуска сценариев C#.

Ранее REPL для Visual Studio и C# был доступен в виде расширения.

Теперь вы можете скачать его и для VS2015 (если вдруг по каким-то причинам вам не захочется обновляться до VS2015 update 1 или вас мучит любопытство посмотреть альтернативный вариант): VisualStudio C# REPL Кроме того, существует несколько сайтов, позволяющих играть с C# онлайн.

Например это: C# Pad: запуск кода C# онлайн .

Для того, чтобы открыть интерактивное окно C# из Visual Studio 2015, необходимо зайти в меню «Вид», выбрать «Другие окна» и подпункт «Интерактивный C#».



Интерактивный C#

Откроется следующее окно:

Интерактивный C#

Альтернативно, чтобы работать с интерактивным C#, вы можете открыть «Командную строку разработчика для VS2015» и ввести csi. Начнем с простейшего кода C#, который вы можете запустить:

Console.Write("Hello, World!")

Нажатие Enter нас не удивит и ожидаемо отобразит «Hello, World!» на экране.

При вводе кода вы можете заметить, что поддерживается IntelliSense. Вы можете ввести 5+10, нажать Enter и получить ответ в виде 15. Вы можете присвоить значение переменной.

И затем в любой последующей строке используйте эту переменную.

Например, вы можете попробовать простой запрос LINQ для данных из массива:

int[] source = new[] { 3, 8, 4, 6, 1, 7, 9, 2, 4, 8 }; foreach (int i in source.Where(x => x > 5)) Console.WriteLine(i);

Запуск команд и установка значений переменных – это не все, что можно сделать в интерактивной строке.

Вы также можете указать ссылки на пространство имен, используя директиву #r. Например:

#r "System.Windows.Forms" using System.Windows.Forms; var f= new Form { BackgroundImage = System.Drawing.Bitmap.FromFile("D:/fun.jpg") }; f.ShowDialog();

Некоторые пространства имен можно использовать без добавления директивы #r. Для примера скачаем файл с хабрастоража:

using System.Net; WebClient webClient = new WebClient(); webClient.DownloadFile(" https://hsto.org/files/229/aad/50d/229aad50de554be19ce60c60dbfd2e7e.png ", @"d:\myfile.png");

Этот текст можно либо ввести в интерактивной консоли C#, либо сохранить в текстовом файле в формате csx. Использование директивы #нагрузка вы можете скачать и выполнить скрипт. Например, вот так:

#load "myScriptContext.csx"

Альтернативно, вы можете выполнить скрипт из «Командной строки разработчика для VS2015», запустив команду csi и указав путь к скрипту:

csi /path/myScript.csx

Еще есть крайне полезная директива — эта директива #прозрачный или #cls .

Оба значения работают одинаково и очищают экран.

Очищается только экран; все произошедшие объявления переменных, пространств имен и кода остаются в памяти.

#помощь – эта директива печатает справку #перезагрузить – очищает среду выполнения.

Если вы вызовете #reset noconfig, вы пропустите запуск сценария конфигурации, который запускается во время инициализации и добавляет основные пространства имен.

Напоследок предлагаю вам посмотреть видео (на английском языке) от Кейси Уленхут, в котором она извлекает информацию из GitHub: И почитайте вики (снова на английском): Интерактивное окно Интерактивное пошаговое руководство по C# Теги: #REPL #C++ #interactive #interactive #CSI #Эксперименты #обучение #консоль #Visual Studio #C++

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.