提到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. java集合知识点总结

    下面是java中常见的集合: List--列表:内部元素有序,可以重复, ArrayList:线程不安全,效率高.数据结构是线性表,底层结构是顺序表,也就是数组,有唯一的下标来指定元素的位置,查询快, ...

  2. client-go中的golang技巧

    client-go中有很多比较有意思的实现,如定时器,同步机制等,可以作为移植使用.下面就遇到的一些技术讲解,首先看第一个: sets.String(k8s.io/apimachinery/pkg/u ...

  3. CentOS 6.x 安装 JDK1.8

    安装方式:rpm(此方式不需要手动配置环境变量) 1. 查看系统是否自带了jdk 查看centos是否自带了openjdk,如果有则卸载掉(当然也可以不卸载,但要注意冲突及版本的使用) # 查看 rp ...

  4. vue的基本用法和指令

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. python 中的__name__ == "__main__"(转)

    有句话经典的概括了这段代码的意义: “Make a script both importable and executable” 意思就是说让你写的脚本模块既可以导入到别的模块中用,另外该模块自己也可 ...

  6. 机器学习经典算法之PageRank

    Google 的两位创始人都是斯坦福大学的博士生,他们提出的 PageRank 算法受到了论文影响力因子的评价启发.当一篇论文被引用的次数越多,证明这篇论文的影响力越大.正是这个想法解决了当时网页检索 ...

  7. 成功解决 org.mybatis.spring.MyBatisSystemException问题!!

    org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingExce ...

  8. Scratch3 二次开发系列

       Scratch3.0来啦!!! Scratch做为图像化编程的首选语言,拖过积木块搭建实现动画游戏的制作.Scratch3添加了音乐.画笔.视频侦测.文字朗读.翻译等选择性下载扩展积木,可实现积 ...

  9. Object.keys使用整理

    一.语法 Object.keys(obj) 参数:要返回其枚举自身属性的对象 返回值:一个表示给定对象的所有可枚举属性的字符串数组 二.处理对象,返回可枚举的属性数组 let person = { n ...

  10. springboot+redis实现session共享

    1.场景描述 因项目访问压力有点大,需要做负载均衡,但是登录使用的是公司统一提供的单点登录系统,需要做session共享,否则假如在A机器登录成功,在B机器上操作就会存在用户未登录情况. 2. 解决方 ...