赤手空拳编写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 ...
随机推荐
- Cupid's Arrow---hdu1756(判断点与多边形的位置关系 模板)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1756 题意:中文题,套模板即可: /* 射线法:判断一个点是在多边形内部,边上还是在外部,时间复杂度为 ...
- JS判断浏览器是否安装flash插件
1.直接判断是否有flash插件 var myFlash = (function(){ if(typeof window.ActiveXObject != "undefined") ...
- 【转】android Graphics(四):canvas变换与操作
android Graphics(四):canvas变换与操作 分类: 5.andriod开发2014-09-05 15:05 5877人阅读 评论(18) 收藏 举报 目录(?)[+] 前言 ...
- Recompile the invalid object for oracle.
1. How does the invalid object come? The Oracle database will invalidate objects if a dependent obje ...
- 30天,O2O速成攻略【7.19深圳站】
活动概况 时间:2015年07月19日13:30-16:30 地点:深圳腾讯大厦(南山区科技园科技中一路)2楼多功能厅 主办:APICloud.OneAPM.连接科技 网址:www.apicloud. ...
- java中清空session
session.removeAttribute("sessionname")是清除SESSION里的某个属性. session.invalidate()是让SESSION失 ...
- javascript设计模式学习之十——组合模式
一.组合模式定义及使用场景 组合模式将对象组合成树形结构,用以表示“部分—整体”的层次结构,除了用来表示树形结构之外,组合模式还可以利用对象的多态性表现,使得用户对单个对象和组合对象的使用具有一致性. ...
- 比较Date时间先后
if ([firstDetailSelect compare:secondDetailSelect] == NSOrderedDescending) { [MBProgressHUD showErro ...
- PostgreSQL Replication之第十章 配置Slony(2)
10.2 理解 Slony如何工作 在我们开始复制我们的第一个数据库之前,我们想深入Slony的架构.理解这是如何工作的是非常重要的,否则,将不可能以一种有用的和合理的方法使用这个软件.与事务日志流不 ...
- G面经prepare: Jump Game Return to Original Place
第二题 算法 给你一个arr 返回 T 或者 F arr的每个数代表从这个点开始跳几部,返回T的情况:从这个arr中任意一个数开始跳,可以在每个元素都跳到且只跳到一次的情况下返回到开始跳的元素 比如[ ...