赤手空拳编写C#代码
有时候服务器上并没有安装任何IDE或典型的代码编辑器,只能完全手写C#代码。
不妨假设一台全新的PC,较新版本的Windows自带了.net框架,无需开发工具即可编程了。
除了以往的Bat批处理、VBS脚本,以及利用浏览器支持编写简单的程序,连C#、VB.net等编译型语言也可以直接开发了。
设置环境变量
为了方便启动C#的编辑器,而无需每次输入完整路径,我们可以将csc.exe加入系统默认搜索的路径。
1.搜索csc.exe的路径
比如是C:\Windows\Microsoft.NET\Framework\v4.0.30319 将其加入系统的环境变量
2. 如果需要始终生效则需要在环境变量中新建一个变量path内容为路径C:\Windows\Microsoft.NET\Framework\v4.0.30319

如果临时使用只需在cmd命令行输入 path=C:\Windows\Microsoft.NET\Framework\v4.0.30319

这样在任何cmd窗口下就可以直接使用csc命令了。
编辑器设置
干净的系统没有VS、没有Vim,连个Word都没有,Win7的话连个命令行edit都没有。这样编辑器只能选择最原始的记事本或者写字板了。
首先设置适合编程的等宽字体,如Consolas。
在任意目录下,Shift+右键可增加在此处打开命令窗口,省略当前路径的输入。
写字板
优点:支持文字颜色修改(也得手动更改,可以做辅助提示使用)
文字处理更为丰富,支持文字快捷键,如Ctrl+B加粗、Ctrl+U下划线等
可缩放文字,Ctrl+滚轮
Tab可调整为4个空格,右键-段落-选项卡-制表符宽度

可通过
为多行增减缩进。等等方便编程的功能。
记事本
优点:可在任务栏显示显示当前行列号
可用Ctrl+G跳转到指定行,方便根据调试信息快速定位。

有F5插入 当前日期等快捷键,但快捷键功能较弱。
缺点是无法调整Tab长度,只能默认8个空格等。
命令行
因为手写简短的代码,就省略了名称空间、public等信息,怎么简单怎么写。

using System;
class Test
{
public static void Main()
{
Console.WriteLine("Hello World!");
}
}
cmd命令行输入csc 1.cs 即可编译,在本目录下生成1.exe可执行文件

生成WinForm窗体
简短的代码生成Windows窗体
using System;
using System.Windows.Forms;
class Form1 : Form
{
public static void Main()
{
Application.Run(new Form1());
}
}


为WinForm窗体添加控件和事件响应
using System;
using System.Windows.Forms;
class Form1 : Form
{
Button button1 = new Button();//声明控件
Form1()
{
Controls.Add(button1);//添加控件
this.Text = "窗体标题";
button1.Text = "按钮";
button1.Click += ClickButton1;//绑定按钮事件
}
void ClickButton1(object sender, EventArgs e)//注意事件的2个参数
{
MessageBox.Show("弹出信息");
}
public static void Main()//入口函数
{
Application.Run(new Form1());
}
}

GDI
赤手空拳编写C#代码的更多相关文章
- [转]通过Visual Studio为Linux编写C++代码
Build 2016大会上Microsoft首次公布的Visual Studio 2015扩展提供了在VS2015中编写C++代码,随后通过Linux/UNIX计算机进行编译和执行的能力.这种想法非常 ...
- 基于CkEditor实现.net在线开发之路(2)编写C#代码,怎么调用它。
上一章简约的介绍了CkEditor编辑器,可以编辑js逻辑代码,css,html,C#代码,这章我根据实际例子,讲解怎么编写C#代码和怎么调用它. 大家都还记得刚刚接触程序编时的hello Word吧 ...
- 解决VS2012编写JQuery代码不能智能提示的问题(其他js库的代码提示设置估计类似)
VS默认设置下编写jQuery代码是这样的: 解决办法: 1.在项目的"管理NuGet程序包"中安装JQuery: 2.打开:工具 -> 选项 -> 文本编辑器 -&g ...
- JNI技术基础(2)——从零开始编写JNI代码
书接上文: <JNI技术基础(1)——从零开始编写JNI代码> 2.编译源程序HelloWorld.java并生成HelloWorld.class 3.生成头文件HelloWorld.h ...
- 最新的JavaScript核心语言标准——ES6,彻底改变你编写JS代码的方式!【转载+整理】
原文地址 本文内容 ECMAScript 发生了什么变化? 新标准 版本号6 兑现承诺 迭代器和for-of循环 生成器 Generators 模板字符串 不定参数和默认参数 解构 Destructu ...
- AppleWatch开发教程之Watch应用对象新增内容介绍以及编写运行代码
AppleWatch开发教程之Watch应用对象新增内容介绍以及编写运行代码 添加Watch应用对象时新增内容介绍 Watch应用对象添加到创建的项目中后,会包含两个部分:Watch App 和 Wa ...
- mvn编写主代码与测试代码
maven编写主代码与测试代码 3.2 编写主代码 项目主代码和测试代码不同,项目的主代码会被打包到最终的构件中(比如jar),而测试代码只在运行测试时用到,不会被打包.默认情况下,Maven假设项目 ...
- [JS进阶] 编写可维护性代码 (1)
今天的web应用大至成千上万行的javascript代码,执行各种复杂的过程,这种演化让我们开发者必须得对可维护性有一定的认识!编写可维护性代码很重要,很多情况下我们是以他人的工作成果为基础,确保代码 ...
- Java认证:JavaRunnable线程编写接口代码
Java认证:JavaRunnable线程编写接口代码.JavaRunnable线程如何才能更好的适应目前的编程环境呢?下面我们就看看如何才能更好的进行相关环境.希望下面的文章对大家有所帮助.Java ...
随机推荐
- SQL Server 2008 R2中,“选择前1000行”为“选择所有行”
从SQL Server 2008开始,微软为了提高查询效率等原因,右键点击表时弹出菜单中默认没有"显示所有行",而以"选择前1000行"替代. 点击[工具]-& ...
- 学习WEb前端开发的需要哪些条件
第一阶段--HTML的学习. 超文本标记语言(HyperText Mark-up Language 简称HTML)是一个网页的骨架,无论是静态网页还是动态网页,最终返回到浏览器端的都是HTML代码,浏 ...
- extjs form.load()加载服务端数据
formPanel.getForm().load({ url: 'getApproveRefundInf?refundIdDetail=${refundIdDetail}', waitMsg: '请稍 ...
- JQuery:JQuery遍历详解
JQuery:遍历一.什么是遍历?jQuery 遍历,意为"移动",用于根据其相对于其他元素的关系来"查找"(或选取)HTML 元素.以某项选择开始,并沿着这个 ...
- 求以下表达式的值,写出您想到的一种或几种实现方法: 1-2+3-4+……+m
private static int fun(int m) { ; ; i <= m; i++) { == ) temp = temp + i; else temp = temp - i; } ...
- 四元数(Quaternion)和旋转(转)
http://blog.csdn.net/candycat1992/article/details/41254799 四元数介绍 旋转,应该是三种坐标变换--缩放.旋转和平移,中最复杂的一种了.大家应 ...
- you need to upgrade the working copy first
is too old (format 29) to work with client version '1.9.4 (r1740329)' (expects format 31) 2016年09月18 ...
- ASP.NET IIS设置 Session时间
1.打开IIS需设置的网站主页 2.打开主页IIS--ASP项目,如下图: 3.设置 会话属性---超时 的值,如下图:
- Java遇见HTML——JSP篇之JSP基础语法
一.JSP简介 JSP全名为Java Server Pages,Java服务器端页面,其根本是一个简化的Servlet设计,它实现了在Java中使用HTML标签.Jsp是一种动态网页技术标准,是在服务 ...
- Java Lock ReentrantLock ReentrantReadWriteLock
Lock与Synchronized的区别: 1)Lock是一个接口,而synchronized是Java中的关键字,synchronized是内置的语言实现: 2)synchronized在发生异 ...