提到c#,就不得不说.net,.net是微软开发的一个平台,简单来说,在这个平台上,可以编写、运行程序。可能很多人觉得这个平台离我们很遥远,其实不然,这个平台就一直在我们的windows操作系统里,默默地为我们提供着服务。经过这么多年的发展,.net平台已经到了4.7版本。说的具体点,.net平台就在这里
路径C:\Windows\Microsoft.NET
Framework是.net的框架,这里的Framework和Framework64分别是32位和64位的文件夹,32位的操作系统只有Framework这个文件夹,没有Framework64。两个文件夹里存的东西基本差不多,如图
两个文件夹分别存放了32位和64位的不同的版本的.net。
这个平台怎么使用呢?我这里以64位的4.0版本为例。打开这个文件夹。
可以找到一个叫csc的程序,这个程序就是我们的编译器,其他版本的文件夹里也都有这个程序。我们可以使用编译器把源代码编译成可执行文件。举个例子,我在这里写一个程序:
在当前目录下新建一个文本,写好代码
这个代码的意思是输出"Hello World",这是编程学习的一个传统,第一个程序一定要写"Hello World"。现在不需要看懂这个程序,我先为你们讲一下编译的原理。
首先,把文件的扩展名改为cs,就是c sharp的意思,说明这是一个c#文件。这里有必要说一下,c#的读法是“c煞普”不是“c井”啊!
因为我安装了IDE,所以图标发生了变化,这个不用管。可以看到,我的扩展名已经改好了。然后打开控制台,按快捷键win+r打开运行,在里面输入cmd回车
 
我们敲命令,cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319,这条命令的意思是,跳转目录到C:\Windows\Microsoft.NET\Framework64\v4.0.30319,我们想跳转到哪都可以写cd加路径的,这次跳转到这里是因为这里存放着源文件。
跳转之后我们继续敲csc hello.cs,然后回车,这句命令的意思是,用csc编译hello.cs
敲完了之后下面出现了好多信息,我们去刚才的文件夹里看一看
发现多了一个exe文件,这就是编译好的可执行文件了。我们把它打开。
这个程序我们就编译完成了,这就是编译程序的完整步骤,这个exe文件可以拿去给别人直接使用了,虽然说没啥功能,但作为我们写的第一个程序是不是很有纪念意义呢?
有的同学可能要问了,我们只能在这个有csc的文件夹里写吗?当然不是,我们可以把程序写在任何地方,比如,我在桌面上写了一个,我们跳转目录到桌面。然后开始编译,发现不行
提示说csc不是内部或外部命令,这是因为这个目录里没有csc文件,所以系统找不到csc在哪里,所以就失败了。那么我们就要告诉系统csc在哪里,方法就是配置环境变量。
我们把csc的文件路径复制一下
右单击计算机,点击属性,再点击高级系统设置。
点击环境变量
在系统变量里找到Path并双击打开
打开之后win7和win10系统不一样,win10的简单一些,不同的环境变量都分栏显示,自己加上一栏就好,把刚才复制的路径加进去,如C:\Windows\Microsoft.NET\Framework64\v4.0.30319,我这里用win7系统截图
win7里的变量值都写在一个小框里,不同的环境变量之间用分号(英文的分号)隔开,所以我们需要在这行变量的最后加一个分号,然后把刚才复制的路径粘贴进去。
做好了一路确定就好。环境变量配置好了我们再来试一次。
成功了,现在可以在系统的任何地方写程序了。
 
ps:本文是为了使你们理解c#编译的原理,将来使用IDE开发不需要配置环境变量。 

c#小灶——初识c#的更多相关文章

  1. Android动画效果之初识Property Animation(属性动画)

    前言: 前面两篇介绍了Android的Tween Animation(补间动画) Android动画效果之Tween Animation(补间动画).Frame Animation(逐帧动画)Andr ...

  2. 初识Hadoop

    第一部分:              初识Hadoop 一.             谁说大象不能跳舞 业务数据越来越多,用关系型数据库来存储和处理数据越来越感觉吃力,一个查询或者一个导出,要执行很长 ...

  3. python学习笔记(基础四:模块初识、pyc和PyCodeObject是什么)

    一.模块初识(一) 模块,也叫库.库有标准库第三方库. 注意事项:文件名不能和导入的模块名相同 1. sys模块 import sys print(sys.path) #打印环境变量 print(sy ...

  4. 初识IOS,Label控件的应用。

    初识IOS,Label控件的应用. // // ViewController.m // Gua.test // // Created by 郭美男 on 16/5/31. // Copyright © ...

  5. UI篇(初识君面)

    我们的APP要想吸引用户,就要把UI(脸蛋)搞漂亮一点.毕竟好的外貌是增进人际关系的第一步,我们程序员看到一个APP时,第一眼就是看这个软件的功能,不去关心界面是否漂亮,看到好的程序会说"我 ...

  6. Python导出Excel为Lua/Json/Xml实例教程(一):初识Python

    Python导出Excel为Lua/Json/Xml实例教程(一):初识Python 相关链接: Python导出Excel为Lua/Json/Xml实例教程(一):初识Python Python导出 ...

  7. 初识SpringMvc

    初识SpringMvc springMvc简介:SpringMVC也叫Spring Web mvc,属于表现层的框架.Spring MVC是Spring框架的一部分,是在Spring3.0后发布的 s ...

  8. 初识redis数据类型

    初识redis数据类型 1.String(字符串) string是redis最基本的类型,一个key对应一个value. string类型是二进制安全的.意思是redis的string可以包含任何数据 ...

  9. Redis初识、设计思想与一些学习资源推荐

    一.Redis简介 1.什么是Redis Redis 是一个开源的使用ANSI C 语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value 数据库,并提供多种语言的API.从2010 年 ...

随机推荐

  1. 逻辑、集合运算上的卷积一览(FMT、FWT,……)

    \oplus=\and,\or,\veebar 简介 对于逻辑\(\oplus\)的卷积,而且你不能N方豹草 \[ A_k=\sum_{i\oplus j=k} B_i\times C_k\\ \] ...

  2. Linux htop 使用

    引言 一般大家查看进程相关信息常用的命令是 top,之前接触并使用 htop,觉得比较好用,它算是 top 的增强版,这里重新记录下. htop 简介 NAME htop - interactive ...

  3. linux命令积累

    lsof -i: //根据端口号查相关信息 //杀进程 ps -ef|grep appName //根据进程名称查找相关信息 grep -r "关键词" 目录 //在制定目录下根据 ...

  4. 字符串匹配Boyer-Moore算法:文本编辑器中的查找功能是如何实现的?---这应该讲的最容易懂的文章了!

    关于字符串匹配算法有很多,之前我有讲过一篇 KMP 匹配算法:图解字符串匹配 KMP 算法,不懂 kmp 的建议看下,写的还不错,这个算法虽然很牛逼,但在实际中用的并不是特别多.至于选择哪一种字符串匹 ...

  5. easyui combobox name选择器

    HTML: <input name="myinputdom" id="myinputdom" class="easyui-combobox my ...

  6. Ceph Plugin - Dashboard - By Anoyi

    ▶ 部署 Dashboard 1.安装 ceph-mgr-dashboard yum install -y ceph-mgr-dashboard 2.禁用 SSL ceph config set mg ...

  7. 前端从零开始学习Graphql

    学习本姿势需要电脑装有node,vue-cli相关环境,以及要有node,express,koa,vue相关基础 本文相关demo的github地址: node服务:https://github.co ...

  8. ecshop数据库结构和字段介绍(转载)

    ecs_account_log:账户变动日志(注册用户充值.支付等记录信息)字段 类型 Null 默认 字段说明log_id mediumint(8) 否 无 日志IDuser_id mediumin ...

  9. 牛逼了,教你用九种语言在JVM上输出HelloWorld

    我们在<深入分析Java的编译原理>中提到过,为了让Java语言具有良好的跨平台能力,Java独具匠心的提供了一种可以在所有平台上都能使用的一种中间代码——字节码(ByteCode). 有 ...

  10. Java编程思想:内部类中级部分

    public class Test { public static void main(String[] args) { // Parcel4Test.test(); // Parcel5_1.tes ...