浅谈 C# 交互窗口
我们知道,F# 的编译器是 fsc.exe,F# 交互窗口是 fsi.exe。其他动态语言也可以交互执行,例如 Ruby 语言的解释器是 ruby,交互窗口是 irb。而 Python 语言中,python 既可以解释执行,也可以作为交互窗口。请参见我于2010年6月15日写的随笔“Ubuntu 中的编程语言(上)”。
C# 语言虽然不是动态语言,但是在 mono 中也有一个 C# 交互窗口: csharp,请参阅 CsharpRepl 。
ben@ben1520:~> csharp Mono C# Shell, type "help;" for helpEnter statements below. csharp> Environment.Version; 4.0.30319.1 csharp> Environment.OSVersion; Unix 2.6.34.7 csharp> var pi = Math.PI; csharp> pi / 2; 1.5707963267949 csharp> ShowVars(); double pi = 3.14159265358979 csharp> quit; ben@ben1520:~>
可以看出,直接输入一个表达式,C# 交互窗口就会给出该表达式的值。使用 help 命令可以获得帮助:
ben@ben1520:~> csharp Mono C# Shell, type "help;" for helpEnter statements below. csharp> help; "Static methods:Describe (object) - Describes the object's typeLoadPackage (package); - Loads the given Package (like -pkg:FILE)LoadAssembly (assembly) - Loads the given assembly (like -r:ASSEMBLY)ShowVars (); - Shows defined local variables.ShowUsing (); - Show active using declarations.Prompt - The prompt used by the C# shellContinuationPrompt - The prompt for partial inputTime(() -> { }) - Times the specified codequit; - You'll never believe it - this quits the repl!help; - This help textTabAtStartCompletes - Whether tab will complete even on emtpy lines " csharp> ShowUsing(); using System; using System.Linq; using System.Collections.Generic; using System.Collections; csharp> quit; ben@ben1520:~>
下面是使用 Linq 语句的例子:
ben@ben1520:~> csharp Mono C# Shell, type "help;" for helpEnter statements below. csharp> using System.IO; csharp> from f in Directory.GetFiles("/etc")> let fi = new FileInfo(f)> where fi.LastWriteTime > DateTime.Now.AddDays(-7) > select f; { "/etc/adjtime", "/etc/fstab", "/etc/group","/etc/mtab", "/etc/passwd", "/etc/shadow" } csharp> quit; ben@ben1520:~>
此外,C# 交互窗口还支持编辑命令行,<Home>键移动光标到行首,<End>键移动光标到行末,<上箭头>键将当前行替换为上一行,<下箭头>键将当前行替换为下一行,<退格>键删除光标前一个字符,<Del>键删除光标处字符,<Tab>键补全命令行。更详细的信息可使用 man csharp 命令查看。
ben@ben1520:~/work> cat test.cs using System.Numerics; var a = 13; BigInteger.Pow(a, 53); ben@ben1520:~/work> csharp test.cs -r:System.Numerics.dll 109395050288514219040366056833567359441133418834382438145053 ben@ben1520:~/work> csharp --version Mono C# compiler version 4.0.0.0 ben@ben1520:~/work>
可见也可以将 C# 语句放到 .cs 文件中由 csharp 来解释执行。
此外,C# 交互窗口还有 GUI 版本:gsharp,可以使用 GTK#,并且内置一个 Plot 用来画函数的图像:
浅谈 C# 交互窗口相关推荐
- 浅谈TCP的窗口字段
该掸掸这里的灰尘了,写一篇关于TCP的文章吧.今天的主题是TCP的滑动窗口.在开始这个话题之前,我想先提几个关于TCP协议的常见误区. 误区1:TCP协议三次握手过程中后两个包都是[ACK]包. 解释 ...
- 浅谈:交互设计应用在哪些行业?就业前景如何?
随着我们的产品越来越智能化和人性化,交互设计师的概念应运而生.交互设计的的出现,在一定程度上满足了当下人们对产品的需求.因此交互设计被广泛的应用在各行各业,像目前发展前景好比较热门的搜索引擎.微信.淘 ...
- 页面显示 amp html6,浅谈HTML5 amp;amp; CSS3的新交互特性
本文标题的这副图片,是用Phosotshop制作的.但是,在搜索引擎中你却无法搜索到它,搜索引擎还没有强大到能够识别图片里面的文字.并且由于图片的体积不算太小,可能网速慢的网友在浏览的时候不得不耐心的 ...
- linux 易语言窗口程序_浅谈Linux入门的基本知识
浅谈Linux入门的基本知识 图形模式与文字模式的切换方式Linux预设提供了六个命令窗口终端机让我们来登录. 默认我们登录的就是第一个窗口,也就是tty1,这个六个窗口分别为tty1.tty2 - ...
- html5交互效果,浅谈HTML5 CSS3的新交互特性
本文标题的这副图片,是用Phosotshop制作的.但是,在搜索引擎中你却无法搜索到它,搜索引擎还没有强大到能够识别图片里面的文字.并且由于图片的体积不算太小,可能网速慢的网友在浏览的时候不得不耐心的 ...
- html5中的css特性,浅谈HTML5 CSS3的新交互特性
本文标题的这副图片,是用phosotshop制作的.但是,在搜索引擎中你却无法搜索到它,搜索引擎还没有强大到能够识别图片里面的文字.并且由于图片的体积不算太小,可能网速慢的网友在浏览的时候不得不耐心的 ...
- android分屏模式_浅谈 Android 7.0 多窗口分屏模式的实现
从 Android 7.0 开始,Google 推出了一个名为"多窗口模式"的新功能,也就是我们常说的"分屏模式".那么,这个功能有什么用呢?作为开发者,我们又 ...
- Esp8266 进阶之路21 【高级篇】浅谈 esp8266 如何在本地局域网网络情况下实现最大效率地和前端实现数据交互。(附带Demo)
本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 序号 SDK版本 内容 链接 1 nonos2.0 搭建 ...
- 计算机中用户的分类有哪些,用户分类浅谈交互设计 -电脑资料
说到网络产品,离不开的话题就是用户,就像传统行业的消费者, 不分类不好定位, 好的用户分类让我知道了我在追求哪些人,满足哪些人,影响哪些人.但分不好类又会错位,更糟,那怎样才能对某一款产品的用户群进行 ...
- catia三维轴承_浅谈基于CATIA二次开发的单排四点接触球轴承三维设计论文
浅谈基于CATIA二次开发的单排四点接触球轴承三维设计论文 一.概述 单排四点接触球转盘轴承是一种能够同时承受较大轴向负荷.径向负荷和倾覆力矩等综合载荷,集支承.旋转.传动.固定等多种功能于一身的特殊 ...
最新文章
- Android报错:java.lang.NoClassDefFoundError: Failed resolution of: Ljava/util/Base64;如何解决
- 【经验】网络加速:pip
- SAP Basis 日常管理
- linux ubuntu kill指令和killall指令的区别(killall会终止所有与该名字匹配的进程)
- 1731: 数棍子(二分,最后一个大于等于)
- Notes on language modeling-COMS W4705: Natural Language Processing-学习笔记
- SpringBoot-源码阅读
- HttpServlet请求重定向
- 如何让一个函数返回多个值(C#)
- MSSQL自动备份数据库(转载)
- DSP程序nbsp;调试总结
- 【知识管理】知识管理系统功能构件简介
- Button按钮及其点击事件方式
- 我的世界服务器无限刷东西指令,我的世界无限刷物品命令方块指令 | 手游网游页游攻略大全...
- IDEA springboot 项目启动报错 Shorten the command line via JAR manifest or via a classpath file and rerun
- uniapp 本地相册选择图片
- 微信支付 postman_微信收款商业版有什么功能?微信智慧经营2.0原来可以这么玩!...
- SQL基础培训13-索引和优化
- java程序员学技术都会访问那些网站?
- 201606120030-软一-周翊涵
热门文章
- Delphi 与 DirectX 之 DelphiX(63): TDIB.DoPosterize();
- Dot net GC
- kafka consumer 的配置(五)
- CENTOS6.8 修改主机名
- IN改写关联注意事项!
- java.io.tmpdir
- 将网页和文档的背景改为绿色来保护眼睛
- 左手用R右手Python系列16——XPath与网页解析库
- activiti官网实例项目activiti-explorer之获取流程节点
- First Kernel-pwn