.NET 轻量级 命令行工具 CSharpRepl
前言
当我们需要快速测试代码片段时,常见的做法是启动Visual Studio或使用在线代码编辑器。然而,Visual Studio的启动可能较为缓慢且占用较多系统资源,而在线编辑器则可能遇到语法支持局限或网络延迟问题。
为解决这个问题,给大家推荐一款轻量级的本地C#执行工具——CSharpRepl。可以提供一个即时、便捷的环境,能够迅速验证代码想法,无需等待IDE的启动,也不受网络连接的限制。
CSharpRepl 的优势在于体积小巧、启动迅速,同时支持C#的广泛语法特性,非常适合即时能够看到代码效果,帮助我们快速验证文问题。
无论是初学者还是大神级别,CSharpRepl都能成为一个理想的代码运行平台,帮助你更高效地学习和工作。
简而言之,CSharpRepl 是一个实用的选择,它简化了C#代码的测试流程,让你专注于编程本身,而无需为工具的局限性所困扰。
CSharpRepl 简介
CSharpRepl 是一个在 .NET Core 环境下运行的 C# 交互式 REPL(Read-Eval-Print Loop)工具,由 waf 在 GitHub 上开源维护。
REPL 环境允许开发者以交互方式执行 C# 代码,非常适合实验、原型设计、学习语言特性和快速脚本编写。
CSharpRepl 特点
1、即时反馈:输入代码后,CSharpRepl 立即执行并显示结果,无需编译整个项目。
2、.NET Core 兼容:完全兼容 .NET Core,这意味着它可以在多种操作系统上运行,包括 Windows、macOS 和 Linux。
3、代码补全和智能感知:提供代码自动补全和智能感知功能,提高编码效率。
4、代码重用:在 REPL 会话中定义的变量和方法在后续的命令行输入中仍然可用,便于代码重用。
5、文件导入:可以导入本地文件中的代码,方便在 REPL 环境中测试和调试代码片段。
6、自定义配置:用户可以根据需要调整 REPL 的行为,例如设置默认的引用集合、预加载的程序集等。
7、支持IL(中间语言)反汇编,包括调试和发布模式。
8、支持OpenAI集成。
安装与使用
1、安装 CSharpRepl
通过 NuGet Package Manager
如果已经安装了 .NET SDK,可以通过命令行使用以下命令来全局安装 CSharpRepl:
dotnet tool install --global CSharpRepl
源代码编译
使用源码编译 CSharpRepl,可以从 GitHub下载源代码,然后使用.NET CLI 或 Visual Studio 构建项目。

2、启动 CSharpRepl
安装完成后可以在命令行中输入以下命令来启动 CSharpRepl工具

3、使用 CSharpRepl
输入和执行 C# 代码,然后按 Enter 键执行。

安装NuGet包并引用

高亮的语法和智能提示

使用C#和.NET API

引用本地项目

查看IL代码

查看源码

使用场景
教学和学习:适合教授 C# 编程基础知识,学生可以即时看到代码执行的结果。
原型设计:快速测试算法或功能,无需完整的项目结构。
代码探索:研究 .NET 标准库或第三方库的功能和用法。
开源地址
https://github.com/waf/CSharpRepl
如果觉得这篇文章对你有用,欢迎加入微信公众号 [DotNet技术匠] 社区,与其他热爱技术的同行交流心得,共同成长。

.NET 轻量级 命令行工具 CSharpRepl的更多相关文章
- 20个命令行工具监控Linux系统性能
作为Linux/Unix 系统管理员需要掌握一些常用的工具用于检测系统性能.在这里,dodo为大家推荐非常20个有用的并且最常用的命令行系统监视工具: 1. top -Linux系统进程监控 top ...
- 【No.2】监控Linux性能25个命令行工具
接着上一篇博文继续 [No.1]监控Linux性能25个命令行工具 10:mpstat -- 显示每个CPU的占用情况 该命令可以显示每个CPU的占用情况,如果有一个CPU占用率特别高,那么有可能是一 ...
- 监控Linux性能的18个命令行工具
监控 Linux 性能的 18 个命令行工具 对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作.在IT领域作为一名Linux系统的管理员工作5年后,我逐渐 认识到监控和保 ...
- JMeterPluginCMD命令行工具使用详解
MeterPluginCMD命令行工具生成png图片和csv统计文件 Jmeter是个纯java的开源的轻量级性能测试工具,功能强大.因为是轻量级的,与loadrunner相比,报告统计的相对较少.不 ...
- Linux 性能监控的18个命令行工具
对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作.在IT领域作为一名Linux系统的管理员工作5年后,我逐渐 认识到监控和保持系统启动并运行是多么的不容易.基于此原因,我 ...
- 20个linux命令行工具监视性能(下)
昨天晚上第一次翻译了<20 Command Line Tools to Monitor Linux Performance>中的前十个命令,翻译得不是很好,今天晚上继续把后面的十个也翻译给 ...
- 20个命令行工具监控 Linux 系统性能(转载)
1. top — Linux 系统进程监控 top 命令是性能监控程序,它可以在很多 Linux/Unix 版本下使用,并且它也是 Linux 系统管理员经常使用的监控系统性能的工具.Top 命令可以 ...
- 监控 Linux 性能的 18 个命令行工具
http://www.oschina.net/translate/command-line-tools-to-monitor-linux-performance 1.Top-Linux进程监控 Lin ...
- [转载]监控 Linux 性能的 18 个命令行工具
转自:http://www.kuqin.com/shuoit/20140219/338066.html 对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作.在IT领域作为一 ...
- 20个命令行工具监控 Linux 系统性能
对于每个系统管理员或网络管理员来说,每天要监控和调试 Linux 系统性能问题都是非常困难的工作.我已经有5年 Linux 管理员的工作经历,知道如何监控系统使其保持正常运行.为此,我们编写了对于 L ...
随机推荐
- HTML——form表单
表单主要是用来收集客户端提供的相关信息,提供了用户数据录入的方式,有多选.单选.单行文本.下拉列表等输入框,便于网站管理员收集用户的数据,是Web浏览器和Web服务器之间实现信息交流和数据传递的桥梁. ...
- 3分钟部署 我的世界(Minecraft) 联机服务
游戏简介 我的世界(Minecraft)是一款沙盒类电子游戏,该游戏以玩家在一个充满着方块的三维空间中自由地创造和破坏不同种类的方块为主题.玩家在游戏中可以在单人或多人模式中通过摧毁或创造精妙绝伦的建 ...
- 莫烦tensorflow学习记录 (7)循环神经网络 RNN & LSTM
莫凡大佬的原文章https://mofanpy.com/tutorials/machine-learning/tensorflow/intro-RNN/ RNN 的用途 可以读取数据中的顺序,获取顺序 ...
- zabbix笔记_007 zabbix 分布式架构
1. zabbix 分布式架构[服务器数量较大的场景下使用] 现有架构: agent --> zabbix server proxy架构: agent --> zabbix proxy - ...
- fabric compose文件解读(Orderer篇)
orderer在fabric中的作用是排序,另外orderer有点像是管理节点一样,通道之类的都是在orderer的基础之上建立的,有点像比特币,以太坊上面的全节点一样,不过责任比全节点少很多,甚至都 ...
- 小程序转发 搜索wxml
新闻转发 在小程序中要不通过菜单项来完成分享功能,只能通过表单组件中的按钮来完成. 它是通过按钮中的开放能力完成 按钮自定义处理 新闻搜索 搜索wxml 搜索业务的js
- 红白机基本原理(二) CPU
CPU 首发公号:Rand_cs NES 使用的 CPU 为 6502,但与标准的 6502 有些许不同,最大的不同在于 NES 使用的芯片拥有一个 pAPU(pseudo-Audio Process ...
- LeetCode 688. Knight Probability in Chessboard “马”在棋盘上的概率 (C++/Java)
题目: On an NxN chessboard, a knight starts at the r-th row and c-th column and attempts to make exact ...
- ssh基础
SSH安全登录 机器准备 什么是SSH SSH 或 Secure Shell 协议是一种远程管理协议,允许用户通过 Internet 访问.控制和修改其远程服务器. SSH 服务是作为未加密 Teln ...
- spring.jackson 相差8小时,restful接收Date参数处理
spring.jackson 相差8小时,restful接收Date参数处理 前端提交字符串到后台映射日期类型的话,加上@DateTimeFormat(pattern = "yyyy-M ...