用记事本手写C#代码怎么运行

背景

    假如一台计算机只有.NET SDK没有Visual Studio、Visual Studio code等开发工具(IDE)时候,怎么验证是否能运行C#代码呢?如果面试过程中让用记事本手写代码在没有IDE的情况下怎么测试C#代码?“可以用记事本写好代码另存为cs文件编译就可以了”,这不是在C#入门基础课程就讲过吗?确实在.NET Framework可以通过csc.exe来编译cs文件,但是在.net core之后就放弃了传统的csc.exe编译器,用dotnet build来编译项目,注意是项目不是文件。本文将介绍具体.NET如何编译运行cs文件。

1、传统的.NET Framework

先来看看传统的csc方法,在.NET Core之前的.NET Framework版本可以使用csc.exe来编译cs文件,并生成exe文件运行。csc.exe文件在哪呢?一般在每个版本的根目录。下面用记事本新建一个hello的文件另存为,并用csc.exe编译。

1)用记事本新建代码文件并另存为hello.cs。

58c13e6adda5926b8e8554690461c5b9.png

2)编译上面代码

用.NET Framework的csc.exe路径运行,如下图片。当然也可以配置成环境变量来直接输入csc命令运行。

a001b34d578a669cf195a8f31ca3ca78.png

从上面的提示可以看出,csc编译命令只支持C#5以下版本,C#6之后就是.NET Core的开始了。

编译后会生成exe文件,如下:

572d6a905f7fc75ab8df114e67c553a1.png

3)用cmd直接运行

986e397dc7844e9938f8217698cacbc3.png

2、.NET Core以上版本

从上面可以看出C#5之后的版本已经不支持csc.exe,.NET Core以上版本将采用全新的方式编译,那就是dotnet build命令。首先来试一试刚才那个文件

65c6d8c435aeb7c6d8c5ce3c4e25b8cb.png

用这个命令直接报错了。提示根级别数据无效。那么有什么方法吗?其实dotnet build命令不支持单个文件,只支持整个项目的编译(小编未找到更好的方法)。变通一下,可以用dotnet new console命令在当前文件夹新建一个控制台项目,然后把写好的代码拷贝到控制台的Program.cs文件里面。基本class和Main基本元素必须要有,另外需要删除hello.cs,不然有两个main函数会报错(如果使用顶级语句忽略),见下图。

6f3ef61591cd6bbd6a116f07bd5e0b30.png

代码替换完成后就可以在当前文件夹下面使用dotnet build编译当前项目,或者直接用dotnet run运行当前项目。如下图:

4b41bc5254bf8d4045c2434bb14a5628.png

也可以打开bin文件编译生成的exe文件直接运行。

Visual Studio下的csc

还有一种可以执行cs文件的方法,那就是环境安装了Visual Studio,在Visual Studio的目录下面MSBuild文件夹里也有csc.exe。效果如下:

498419d2916d035409a0b01cfb59b68b.png

由于电脑环境有多个版本的.NET,具体不知道vs中的csc.exe是否支持.net core,目测不支持,感兴趣大家可以自己研究一下。但有Visual Studio的情况下用记事本手写代码的意义何在?想当手写代码高手吗?

需要注意的是在windows下由于路径有空格,所以路径需要打引号。

结语

本文讲述了.NET Framework和.NET Core以上版本在没有IDE的情况下运行C#代码的方法。希望对你的工作及面试有所帮助,你遇到过面试让用记事本写代码吗?你有没有更好的方法?欢迎留言或者吐槽本文。

参考:learn.microsoft.com/zh-cn/dotnet/core/tools/dotnet

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值