C#学习笔记——语言基础篇

C#学习笔记(一)

  • 一、C#发展史
  • 二、.NET Framework 框架
    • 1、CLS
    • 2、CLR
    • 3、.NET 程序编译过程
    • 4、.NET 的两种交互模式
  • 三、快捷键
  • 四、层次结构
  • 五、变量
    • 1、容量的单位
    • 2、整型(整数)
    • 3、非整型(小数)
    • 4、非数值型
    • 5、隐式(推断)类型变量
    • 6、变量的作用域
  • 六、常量
    • 1、字面常量
    • 2、符号常量
    • 3、枚举
  • 七、语法
    • 1、声明
    • 2、赋值
  • 八、命名规则
  • 九、小结

一、C#发展史

.NET (dotnet)

  • Microssoft 新一代多语言得开发平台,用于构建和运行应用程序。

C# (csharp)

  • Microsoft 专为.NET推出的高级编程语言
  • 从语言技术、风格、严谨性等特点来说,c#可成为诸多编程语言中最为优秀的一款,甚至由他而引发处计算机语言界中的多种新规范和新特征。

Mono

  • Novell 公司支持在其他操作系统下开发.NET程序的框架
  • Unity 借助Mono实现跨平台,核心是.NET Framework 框架。

二、.NET Framework 框架

  • .Net FrameWork 框架是 .NET 平台不可缺少的一部分,他提供一个文稳定的运行环境来保证我们基于.Net平台开发的各种应用能够正常的运行。
  • 主要由两部分组成:
    –CLR(公共语言运行时)
    –.NET类库
    C#学习笔记——语言基础篇_第1张图片

1、CLS

  • 公共语言规范 Common Language Specification:
    定义了.NET平台上运行的语言所必须支持的规范,用于避免不同语言特性产生的错误,实现语言间的互操作。

2、CLR

  • 公共语言运行库 Common Language Runtime:
    程序的运行环境,负责内存分配、垃圾收集、安全检查等工作。

3、.NET 程序编译过程

  • 计算机语言发展史
    第一代语言:机器语言
    第二代语言:汇编语言
    第三代语言:高级语言
  • 编译运行过程:
    源代码–>(CLS编译)–>CIL(通用中间语言(exe dll))–>(CLR编译)–>机器码
    CLS编译目的:跨语言
    CLR编译目的:优化/跨平台

4、.NET 的两种交互模式

  • C/S:客户机(Client)/服务器模式(Server)如:QQ
    (C/S是Client/Server的缩写。客户端需要安装专用的客户端软件)Winfrom应用程序
  • B/S:浏览器(Browser)/服务器模式(Server)
    (B/S是Browser/Server的缩写,客户机上只要安装一个浏览器)Internet应用程序

三、快捷键

VS中的快捷键: 点击此处.

四、层次结构

using System;
//字面意思:正在使用 xx命名空间
//引入命名空间

//定义命名空间[类的住址]:对类进行逻辑上的划分,避免重名
namespace Solutionbase
{
    //定义类[做工具]
    class Program
    {
        //定义方法 [做功能]
        //程序的入口方法
        //关键字:static:表明即使类没有创建对象也可以访问这个方法
        //        void:发给编译器的信号,表明一个方法不会返回值给调用他的方法
        static void Main(string[] args)
        {//*****************程序从本行开始执行*********************
            //***********语句*************
            //自上而下 逐语句执行
            //代码:对计算机下达的指令

            Console.Title = "俺的第一个程序";

            //字面意思:控制台.写一行(“内容”);
            //现象:在控制台中显示括号内的文本
            //作用:将括号中的文本 写到 控制台中
            Console.WriteLine("Hello World!");
            //字面意思:控制台.读一行();
            //现象:暂停程序(按回车键继续)
            //作用:将用户在控制台输入的文本(ok) 读到程序中来(input)
            string input =Console.ReadLine();

            Console.WriteLine(input);
            Console.ReadLine();//让程序在此行暂停

            //写代码 .cs--> 生成 --> exe --> 运行
            //Console 是 类 [工具]
            //WriteLine/ReadLine 是 方法[动词的功能]
            //Title 是 属性 [名词的修饰]
            //类.方法();   调用语句[使用某个类的功能]
         //*****************程序从本行结束执行*********************
        }
    }
}

五、变量

  • 对象必须被声明为某个类型的对象,如整型、字符串、Dog类型或Button类型;
  • 类型由两个来源:
    1>语言本身定义的类型(预定义类型):可以实现将两个数字相加,然后将相加结果转化为字符串,并将字符串显示出来;
    2>编程人员自己定义的类型(类和接口)

1、容量的单位

  • 位bit(比特):电脑记忆体中最小单位,每一位可以代表0或者1的;
  • 字节Byte:电脑中存储的最小单位;
  • 网速10M指的是Mbps(兆位/秒)是速率单位,换算成字节应该是10/8=1.25兆字节/秒

2、整型(整数)

  • 1个字节:有符号 sbyte (-128~127),无符号 byte (0-255)
  • 2个字节:有符号 short (-32768~32767),无符号 ushort (0 ~ 65535)
  • 4字节:有符号 int ,无符号 uint
  • 8字节:有符号long,无符号 ulong

3、非整型(小数)

  • 4字节:单精度浮点类型 float ,精度7位,使用后缀“f”
  • 8字节:双精度浮点类型 double ,精度15-16位,使用后缀“d”
  • 16字节:128位数据类型 decimal ,精度28-29位,适用于财务和货币计算,使用后缀“m”或“M”
  • 注意事项:
    1.非整形变量赋值要加上后缀,如果不加默认为double。
    2.浮点型运算会出现舍入误差:
    bool number = 1.0f - 0.9f ==0.1f;
    二进制无法精确表示1/10,就像十进制无法精确表示1/3,所以二进制表示十进制会有一些舍入误差,对于精度要求较高的场合会导致代码的缺陷,可以用decimal 代替。

4、非数值型

  • char 字符,2字节,存储单个字符,使用单引号
  • string 字符串,存储文本,使用双引号
  • bool 类型,1字节,可以直接赋值 true 真 false 假,或者赋值表达式做判断

5、隐式(推断)类型变量

  • 编译器通过分析赋给变量的值来推断变量的类型
  • 关键字:var
  • 适用性:数字类型名称较长
  • 不将全部变量在定义时使用var类型的原因:
    1>隐式定义类型降低了代码的可读性和可维护性;
    2>编译器可能对变量类型判断不正确,从而在代码中产生了错误。

6、变量的作用域

  • 变量的作用域就是你能够使用变量的范围。
  • 变量的作用域一般从声明它的那个括号开始到那个括号所对应的结束的括号结束。在这个范围内,我们可以访问并使用变量,超出这个范围则无法访问

六、常量

  • 程序运行时,常量的值不能被改变

1、字面常量

  • 字面常量没有名字,就是一个字面值

2、符号常量

  • 语法:关键字(const)   ~   常量类型   ~  常量标识符 = 常量值
  • 形式和定义变量类似,除了在定义前要加上关键字const外,符号常量必须被初始化
  • 命名规则:
    1>Camel标记法:变量以小写字母开头,各个单词首字母大写,并且单词之间不加空格和下划线
    2>Pascal标记法:与Camel标记法类似,只是变量首字母仍然用大写字母

3、枚举

  • 语法:enum   ~  identifier   ~   [:base-type]   ~   {enumberator-list};
  • 基本类型是枚举常量的潜在数据类型
  • 如果不设定基本类型(通常不设定基本类型),则默认为int型
  • 枚举变量可以使用除了char类型之外任意的整数类型(ushort、long)为枚举列表赋值
  • 如果没有明确指明枚举变量的值,那么枚举常量的第一个值是0,后面的常量值一次为前一个常量值加1

七、语法

1、声明

  • 声明:在内存中开辟一块空间
    变量类型 变量名;
  • 命名规则
    由字母、数字和下划线组成,且不能以数字开头;
    不能使用保留关键字(蓝色)。
  • 建议命名规则
    以小写字母开头
    如果包含多个单词,除第一个单词外其他单词首字母大写
    增加类型前缀便于理解

    例如:string studentName ;

2、赋值

  • 赋值:在该空间存储数据
    变量名 = 数据
  • 注意事项:
    局部变量在使用前必须赋值
    赋值的数据类型和变量声明是的类型必须相同
    同一变量名只能声明一次,但可以多次赋值

八、命名规则

C#学习笔记——语言基础篇_第2张图片

九、小结

  • C#最初专门为.NET平台而设计;
  • C#与.NET Framework 结合使用,.NET Framework 允许用户访问许多专门供Windows使用的库;
  • Common Language Runtime(CLR)是.NET Framework的组成部分,允许用户编译和执行用C#或Visual Basic .NET 编写的应用程序;
  • C#具有简单、类型安全、面向对象和高性能的设计特性;
  • C#应用程序由通过文字编辑器编写的可读写原地阿玛组成。源代码首先被百衲衣成Microsoft Intermediate Language(中间语言,MSIL),而后者子啊运行过程中又被编译成机器代码;
  • 命名空间是一种将程序中不同要素名称进行分组的方法,避免了开发这与微软公司或不同开发者之间在名称分配中的冲突;
  • 类是C#与面向对象编程的核心组成部分,因为类允许用户创建用来反映真实事物的模型类型;
  • 方法是已命名的用来执行一个动作并提供返回值的代码块;
  • 注释三种风格:双斜线(//)、斜线加星号开头,以相反的模式结尾(/* */ )、3个斜线(///);
  • C#可以用来开发控制台应用程序、Windows 应用程序、ASP.NET应用程序和网络应用程序;
  • 关键字var用于创建不固定类型的变量,但这个变量必须立即赋值。编译器将以所赋值的类型作为变量的类型;
  • 字符变量是简单的单独使用的值。符号变量使用const关键字做显示说明,并且像变量一样,具有指定的变量名和值,但是这个值不能被更改;
  • 枚举是一个包含了一组经过命名的常量的类型

你可能感兴趣的:(C#,unity,c#)