第一章:开发入门

一、基础知识

   1、计算机语言发展进程:计算机语言大致经过了机器语言、汇编语言、高级语言三个阶段的发展历程。

汇编语言:使用助记符来替代机器指令机器语言这种反人类的设计,阻碍了软件的发展。因此,后来出现一种语言,它使用一些人类世界中的单词,来代表机器指令,这样的单词,叫做助记符,而这种语言,叫做汇编语言。

高级语言:高级语言更加符合人类的思维习惯汇编语言虽然使用了很多助记符,但它仍然要关注计算机硬件的执行原理,比如:寄存器、控制器、逻辑部件、缓冲区等等等等。因此,汇编语言仍然难以被人类学习和理解。我们开发的软件,功能上已经够复杂的了,还要在编程时考虑计算机底层的硬件原理……高级语言解决了这一问题,使用高级语言,你不用再去考虑计算机硬件是怎么执行的,你可以将目光更加专注于功能的开发。实际上,高级语言也会考虑一部分计算机的底层原理,只不过这一部分非常之少,相对于汇编来说,已经是极大的改善了。高级语言有很多,比如:C#、java、C、js、Python等等等等。

2、 首先我们来说一下关于计算机编程的一些术语:(1)计算机语言;(2)源代码;(2)编译;(4)IDE;(5)编译器;(6)机器               语言;(7)主函数;

计算机语言:人类与计算机沟通的工具,常见的计算机语言:C.PHP.Ruby.Java.C#.Basic.js.C++. ...

源代码:用某种计算机语言编写的内容(这里是C#源代码)

编译器:负责编译的工具;

编译:将源代码转换成机器代码;

IDE::集成开发环境,用于开发软件的工具;

机器语言:机器语言是能够直接被计算机理解并执行的语言

主函数:程序启动时运行的函数;从上到下一次运行函数题中每一句代码,主函数运行结束,程序结束。

(这是我能写出来的,具体请参照详情)

3、源代码(code)--编译(compile)--运行(run)

C#语言的编译器CSC,为了解决跨机器跨平台的问题,不会将源代码直接编译为机器代码,而是将其编译成中间代码,称为IL。

中间代码,既不是源代码,也不是机器代码,你可以把它想象成一种介于源代码与机器代码之间的代码。在阅读难易程度上,它的易读性比源代码高,比机器代码低。

世界上,没有任何一个操作系统,也没有任何一款CPU,能够识别这种中间代码。全世界,只有一款软件可以识别,这款软件就是.NET。

.NET可以识别并执行中间代码,它会根据当前的运行环境(CPU和操作系统),将中间代码转换为最合适的平台代码(可以理解为机器代码),交给CPU和操作系统执行。

也就是说,用C#开发的程序,编译好后,可以放到任何一台计算机、任何一种操作系统上执行,前提条件是,它要安装一个软件.NET。

win7、win8、win10操作系统安装后,会自动安装.NET。windows xp或之前版本的操作系统则不会。

如果你是windows xp或之前版本的操作系统,想要运行.NET程序,需要单独下载.NET安装。

如果你使用的是mac,这篇文章会帮助到你:

这样一来,使用C#语言开发程序,只需要编译一次,就可以将编译结果放到任何一台计算机上正确执行,真正做到了跨机器、跨平台。

当然别忘了,前提条件是,该计算机要安装.NET,因为这一切,都是.NET的功劳。

.NET运行时,全称Common Language Runtime,缩写为CLR,中文译为:公共语言运行时。

前面提到的,.NET可以根据当前的运行环境,将中间代码转换为特定最终代码的功能,就是CLR提供的。
.NET跟语言无关!不管你是用java还是php,不管是用C还是VB,只要你能把源代码转换成中间代码,.NET的CLR就可以执行,它不用管你的源代码到底是什么语言。
正是因为这一特性,.NET可以支持各种各样的计算机语言,它把这些能够编译成中间代码的语言叫做公共语言,而CLR正是用于执行这些语言编译结果的,所以,它叫做公共语言运行时。

也正是因为这一特性,.NET获得了很多语言的支持,你使用以下这些语言编写代码,都可以顺利的交给.NET运行

公共类库:可以把公共类库想象成一个超大型的知识库,知识库中存在大量的、已经完成的代码,这些已经写好的代码可以极大的方便你的开发。只要是.NET支持的语言,都可以从这个知识库中获取它各个层面的功能。不同的语言,只是表达方式有差异罢了。

实际上,在控制台中输出内容,并非一件简单的事情,你之所以可以用这段简单的代码就可以达到输出内容的目的,正是因为这句代码使用了公共类库中的功能。公共类库中已经给你写好了输出代码,你只需要使用C#的语法使用即可。

用编译器将源代码编译成机器代码,计算机才能执行;

首先我们来学习如何找编译器:(1)先找到csc.exe文件夹C→Windows→microsoft.NET→Frame work→V4.0.30→csc.exe(C#编译器);(2)命令行:Windows+R→cmd→cd (编译器路径)→路径csc  /out:\存放路径   源代码位置 ,

如:编译器路径csc /out:\d:\MyFirst.exe d:\MyFirstProgram.txt。

4、用VS2013新建工程

(1)新建项目→模板(Visual C#)→控制台应用程序

(2)编写代码(如果看不到页面)→点击右边解决方案→Program.cs

(3)编译运行→解决方案→MyFirstVS→生成(运行: F5/启动)

第二章:变量与数据类型

一、变量(必须先声明再赋值)

1、定义:一块存储数据的内容空间,并且该内存区域的数据内容可以变化;

2、变量的声明:指定一块内存空间,用于存放数据;

声明的语法:数据类型   变量名;(变量名就是给变量取的名称,C#对大小写比较敏感)

3、变量的赋值:将数据存放到变量的内存空间;

      赋值:变量名=数据;(赋值的时候,变量名和声明时候的变量名要匹配)

变量和声明可以合并书写:数据类型   变量名 = 数据;如:int a = 0;

4、变量命名的要求

(1)硬性要求:

1.变量名只能由数字、字母、下划线组成

2.变量名不得以数字开头

3.变量名不能与关键字相同

4.同一个函数中变量名不得相同

(2)软性要求:变量名首字母小写除第一个单词外,其他单词首字母大写*使用驼峰命名法,做到望文知义。

5、声明时须对变量初始化(初始化:第一次给变量赋值

int num1=,num2=;
string str1 =“Hello,World”;

6、变量三要素:数据类型   变量名   变量值

二、数据类型

1、数据运算

(1)数字运算

         数字运算规则:支持运算:加(+)、减(-)、乘(*)、除(/)、求余(%);返回类型:与运算类型相同;int类型与int返回int;  double类型与double返回double;double与int返回double。

(2)字符串运算(返回类型:string

数据类型 变量名;
等效→ 数据类型 变量名=变量值
变量名=变量值;

2、类型转换

(1)将任意类型转换为string

转换代码:带转换的数据.ToString();返回类型:string

int a = ;
string b = a.ToString();

(2)int类型与double类型的互转

显示转换:

double a = 3.14;
int d = (int)a;

注:显示转换有可能造成数据丢失。

(3)string转换为数字

①string→int                       int.Parse(待转换的字符串);返回类型int;

②string→double                double.Parse(待转换的字符串);返回类型double;

接下来来一个实例:

计算圆形的面积与周长

static void Main(string [] args)
{
Console.Write("请输入圆形的半径(单位米)");
string input = Console.ReadLine();
double r = double.Parse(input);
double pi = 3.14;
double area = pi*r*r;
double perimeter = *pi*r;
string result = "圆形的面积是:"+area+“平方米”;
Console.WriteLine(result);
result = "圆形的周长是:"+perimeter+“米”:
Console.WriteLine(result);
Console.Write("按回车键结束程序");
Console.ReadLine(); }

3、软件中的错误与调试

第三章  运算符和表达式

一、运算符

1、认识运算符

概念:运算符又叫操作符,是一个用于运算的符号,它作用于一个或多个操作数。

运算符的分类:

(1)按运算符的数量;一元(目)运算符  ←  作用于一个操作数;二元(目)运算符  ←作用于两个操作数;

三元(目)预算符  ←作用于三个操作数

(2)按运算符的功能;算术运算符  ←  用于数学运算;逻辑运算符  ←  用于判断真假;

位运算符  ←  用于二进制运算;其他。

2、常见运算符:

(1)小括号

功能作用:①类型转换②改变运算顺序③函数调用

(2)算术运算符

①加加运算符

变量名++:1.先计算返回结果,与变量相同;2,将变量的值自增1

++变量名:1.计算返回结果,为变量值加1;2.将变量的值自增1

int x = ;
x++;
++x;
x = x++;
x = ++x;
计算结果:x =

②减减运算符(同理++运算符)

int x = ;
x--;
--x;
x = x--;
x = ++x;
计算结果:x = --

③+      -       *     /       %     ++       --

④运算顺序:++      --    →   *     /   %   →   +  -

(3)赋值运算符

变量=运算代码(將运算代码赋值给变量);赋值运算符:=     +=     -=    *=     /=   %=;

(4)逻辑运算符(返回类型:bool  (布尔)→  true 或false)

==           !=             >               >=            <             <=             &&             ||          !
等于     不等于      大于       大于等于     小于      小于等于       并且          或者      非

&&:对两个bool类型进行运算,运算的结果:真真为真,其他为假:
||:对两个bool类型进行运算,运算的结果:假假为假,其他为真;
!:一元运算符,对一个bool类型的数据求反。数据为真,其结果为假;数据为假,其结果为真。

(5)三目运算符:又叫做三元运算符,他需要三个操作数参与运算(书写方式:操作数1 ? 操作数2 : 操作数3)

返回结果:如果操作数1判定结果为真,则将操作数2作为返回结果;
如果操作数1判定结果为假,则将操作数3作为返回结果。

int a = ;
int b = a%;
bool c = b == ;
string d = c ? "偶数" :"奇数";
Console.WriteLine(d);
输出结果为:奇数

(6)位运算符(只做了解):用于对数字进行二进制运算

二、表达式

一条有意义的语句,并且该语句至少包含一个操作数和一个操作符。每一个表达式,都有一个返回类型。每个表达式都可以与其         他表达式进行运算,只要类型符合要求。

 

第四章  流程控制

第五章  数组

第六章  函数

未 完 待 续......

简述我理解的C#的更多相关文章

  1. 【系统之音】Android进程的创建及启动简述

    Android系统中的进程(这里不包括init等底层的进程)都是通过Zygote fork而来的,那这些进程的启动流程都是怎样的呢? 这里将Android进程分为两个部分: (1)系统框架进程Syst ...

  2. 分享18道Java基础面试笔试题(面试实拍)

    上图来自Java技术栈微信群里的群友分享,看起来比较基础,但不一定人人都答得上来. 图片比较模糊,小编把题目进行了文字化. 1.你最常上的两个技术站和最常使用的两个app分別进什么?主要解决你什么需求 ...

  3. Jmeter系列(30)- 性能指标(3) | 性能指标峰值

    性能指标峰值 简述 彻底理解了性能指标(1)(2)的内容,这一篇随笔其实就不用看了,而且大家也能猜到这一篇内容是啥:二八原则 性能指标不要硬性的往那些性能指标上去靠,要根据业务来,熟悉业务,明白了解你 ...

  4. ICCV2021 | Vision Transformer中相对位置编码的反思与改进

    ​前言  在计算机视觉中,相对位置编码的有效性还没有得到很好的研究,甚至仍然存在争议,本文分析了相对位置编码中的几个关键因素,提出了一种新的针对2D图像的相对位置编码方法,称为图像RPE(IRPE). ...

  5. 【自编教材】16万8千字的HTML+CSS基础 适合从0到1-可收藏

    [图片链接有点小问题,这几天更新,敬请期待!] 目 录 第一章HTML基础 1.1 HTML简介和发展史 1.1.1 什么是HTML 1.1.2 HTML的发展历程 1.1.3 web标准 1.2 开 ...

  6. 计算机视觉--CV技术指南文章汇总

    前言  本文汇总了过去本公众号原创的.国外博客翻译的.从其它公众号转载的.从知乎转载的等一些比较重要的文章,并按照论文分享.技术总结三个方面进行了一个简单分类.点击每篇文章标题可阅读详细内容 欢迎关注 ...

  7. 【Java面试】简述一下你对线程池的理解?

    到底是什么面试题, 让一个工作了4年的精神小伙,只是去参加了一场技术面试, 就被搞得精神萎靡.郁郁寡欢! 这一切的背后到底是道德的沦丧,还是人性的扭曲. 让我们一起揭秘一下这道面试题. 关于, &qu ...

  8. 深入理解javascript原型和闭包(8)——简述【执行上下文】上

    什么是“执行上下文”(也叫做“执行上下文环境”)?暂且不下定义,先看一段代码: 第一句报错,a未定义,很正常.第二句.第三句输出都是undefined,说明浏览器在执行console.log(a)时, ...

  9. 深入理解javascript原型和闭包(9)——简述【执行上下文】下

    继续上一篇文章(http://www.cnblogs.com/wangfupeng1988/p/3986420.html)的内容. 上一篇我们讲到在全局环境下的代码段中,执行上下文环境中有如何数据: ...

随机推荐

  1. 优雅的使用windows

    1. 快捷键 win+数字键:打开任务栏对应位置的程序 eg:快捷打开程序,重复该组合键有两个效果,如果只打开了一个窗口,再次按下组合键即可最小化,如果打开了多个窗口,则可以在同一程序的多个窗口中切换 ...

  2. go 笔记

    Go 语言的变量声明格式为: var 变量名 变量类型 返回类型. 匿名变量不占用命名空间,不会分配内存.匿名变量与匿名变量之间也不会因为多次声明而无法使用. func GetData() (int, ...

  3. bootstrap table 前后端分页(超级简单)

    前端分页:数据库查询所有的数据,在前端进行分页 后端分页:每次只查询当前页面加载所需要的那几条数据 下载bootstrap 下载bootstrap table jquery谁都有,不说了 项目结构:T ...

  4. selenium+unittest自动化测试

    学了unittest+接口测试后,又试着用框架去做UI测试.感觉还是很好用的. 项目里该有的基本都有了,供以后扩展学习做个参考. 链接:https://github.com/Mollylin0/mon ...

  5. DLL 破解工具

    1.Reflecter+Reflexil (第一类) 2.本文使用的工具下载地址为:(第二类) https://github.com/cnxy/dnSpy/archive/v4.0.0.zip 或 d ...

  6. 浅谈现公司的Spring Cloud微服务框架

    目录 说在前面 服务注册与发现 服务网关及熔断 配置中心 消息中心.服务链路追踪 小言 说在前面 本文偏小白,大佬慎入,若有错误或者质疑,欢迎留言提问,谢谢,祝大家新年快乐. spring cloud ...

  7. 微信小程序外包 就找北京动软 专业承接微信小程序定制

    很多人问为什么要开发微信小程序,微信小程序的“入口”在哪儿? 1.只有访问过的小程序,才会出现所谓的「入口」. 所有访问过得小程序都可以从微信首屏下面的「发现」点过去.(必须是最新版微信) 这个所谓的 ...

  8. Qt551.窗口滚动条

    1.代码的方式来创建 ScrollArea,然后使用 倒是 正常(有滚动条显示),但是此方式太麻烦 不如直接拖控件来的方便直观快捷. 但是,直接拖控件的方式 ScrollArea中无法显示出 滚动条, ...

  9. CSS3 3D图片立方体旋转

    html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <titl ...

  10. 【转】Appium如何定位安卓APP元素

    转载原文:https://www.jianshu.com/p/efe9dcf8bbaf 一.定位工具 在安装appium环境的时候我们已经安装了SDK,里面就自带有元素定位的工具,位置在.../sdk ...