Day01~08_C#基础

01.  .Net平台, .NetFrameWork框架. C#的关系

  .Net平台:可以按“中国移动互联网平台”来理解;

  .Net FrameWork框架:可以按 "信号塔" 来理解;

  .Net FrameWork框架是.Net平台中不可缺少的一部分,它提供了一个稳定的运行环境来保证基于.Net平台开发的各种应用稳定的运行;

  C#: 是一种编程语言,可以开发基于.Net平台的应用;   (Java即是一种平台,又是一种编程语言)       

 

02. .Net能做什么

  a. 桌面应用程序:  WinForm(.net开发的桌面应用程序,叫WinForm应用程序);

  b. Internet应用程序  ASP.Net(.net开发的internet应用程序叫ASP.NET应用程序);

  c. 手机开发 wp8;

  d. Unity3D游戏开发或者虚拟现实;

 

03. .Net的交互模式

  C/S: 客户机/服务器模式;

  B/S: 浏览器/服务器模式;

 

04. 解决方案、项目、类的理解

  解决方案中可以包含多个项目,一个项目中,可以包含多个类 (.cs 文件)

 

05. C# 结构理解

  a. 命名空间: 

       ** 注意:C#中,类文件名称与命名空间是可以不一样的;

    ** 引用:   using 命名空间;   (Java中的 import,  Delphi中的 uses )

        using System;

        using System.Collectiions.Generic;

          

 

 06. 文档结构

  一个解决方案,在电脑让展示出来,就是一个文件夹;

    解决方案中,每一个项目,是一个独立的文件夹;

    在解决方案文件夹下,存在 .suo 的解决方案隐藏文件,这个可以不用关心;只需关心 .sln 解决方案文件即可, 双击.sln文件可直接打开;

    .sln: 解决方案文件夹,里面包含整个解决方案的信息,可以双击运行;

    .csproj: 项目文件,里面包含着这个项目的相关信息,可以双击运行;

 

07. 相关快捷方式 (VS 2022) 及注释

  ctrl + shift + B:  生成解决方案; 可帮助核查语法错误;

  ctrl + B :  生成当前项目

  对于其它快捷键,可依据自已的习惯,自行配置

  工具》选项》环境》键盘;

    *  编辑.设置文档格式( 格式化文档,快速对齐 ) :    

    * 编辑.删除行 (删除一行);

    * 编辑.复制 (复制一行);

    * 编辑. 切换行注释(快速单行注释);

    * 编辑.切换块注释(快速实现块注释)

    * 编辑.将选定行上移 (调整代码位置)

    * 编辑.将选定行下移(调整代码位置)

    * 调试.启动 (运行软件);

    * 调试.切换断点 (配置断点)

    * 调试:逐语句;

    * 调试:逐过程;

    * 视图.查看设计器(新快捷键用于:文本编辑器)

    * 视图.查看代码(新快捷键用于:全局)

    * 编辑.外侧代码  (动态选择一些代码) ctrl+K,ctrl+S

    * 编辑.封装字段 (通过字段,快速生成属性)  >> 相当于快速生成Java中的 getter/setter

    * 视图.属性窗口 (快速调出属性配置窗口)

    * 视图.工具箱(调出控件列表)

   注释:

    单行注释://注释的内容

    多行注释:/* 注释的内容 */

    文档注释:/// 多用来解释类或者方法

   代码折叠

    #region 折叠内容描述

    #endregion

 

 

08. 其它设置

  a. 行号: 工具》选项》文本编辑器》所有语言》常规

    

 

  b. 字体: 

    

 

   c. 主题

    

 

  d. 配置还原

    工具>导入导出设置:  可以恢复系统配置;

 

  e. 启动项目的配置

    解决方案上面右键》属性, 按习惯自行配置

    

 

 

  f. 项目的卸载及加载

    卸载: 可以将项目暂时脱离解决方案,但同时又不删除文件;

    重新加载:可以重新新项目加载到解决方案并做代码编辑;

 

** 变量的使用

  >> C#中,大小写敏感;

  >> 变量的命名必须以  "字母", "_", "@" 符号开始, 不能以数字开头;

  >> 变量、参数命名: 一般使用 小驼峰命名方式;

    类、方法命名    : 一般使用 大驼峰命名方式; 

  >> 关于占位符的使用

    a. 配置了几个占位符,在后面需要提供几个对应的参数;多填了参数,不会产生影响;少填了参数,将会出现异常;

  >>常用转义字符

    \n: 换行;  

    \b: 删除前一字符;代表着backspace

    \\ : 转义输出一个 \

    \t: 转义输出制表符;

    \" : 转义输出 "

    \r\n: windows平台下的换行

    ** @ 符号的使用:取消后面内容中的 \ 的转义作用,纯粹当作是一个 \

    string path = @"D:\a\b\c\d\e.txt";

    ** @的另一种使用方式: 将字符串按原格式输出;

    

 

 

   >> 占位符输出时的格式化 : 0.00, 需要几个小数,在小数点后就配置几个0

    

** 波浪线

   红色波浪线:代码中出现了语法错误;

   绿色波浪线:语法无错,提示有可能出现错误 (申明未使用等情况);

 

09. 基本数据类型

   C#中的基本数据类型                     Java中的基本数据类型及对应的封装类

     

   C#中的数据转换注意点

    a. 小数类型,默认为double; 

    b. decimal 与 double 之间,互相不能隐匿转换;  (浮点间仅支持 float 向 double 的隐式转换)

    c. decimal表示128位数据类型,同浮点数相比,decimal类型具有更高的精度和更小的范围,这使它适合于财务和货币计算。

     如果要标识一个数据为decimal类型,需要在数据后面配置上 m 或 M;

    d. float 类型,最终会被映射为 framework中的 single;  (小数一般默认为double);

    f. String , string; 这二个最终都会被映射为 String;

    g.数据类型不一致时,通过 Convert 进行数据类型的转换;

      > 将字符型数值转数值型数据:

        double infoa = Convert.ToDouble("123");

        int infob = Convert.ToInt32("123");

      > 数据类型.TryParse (number1=0,这个初始值无效,若转换失败,由  TryParse 返回 0 );

        

 

          相当于Delphi中的   number1 = StrToIntDef("123",0);

 

  >> 常量

    const double NPI=3.14;

  >> 枚举

    [public] enum 枚举名

    {

     值1,值2,值3....

    }

    ** 枚举类型与int类型,默认是可以转换的;

      > 转换时,枚举类型从0开始转换,枚举1号内容对应于int类型中的0

      > > 枚举成员中转换为int值时,若枚举成员中有成员配置了值,则从配置的值之后的枚举值,均以配置的值为基数,每往后1位,值+1

        

      

 

    ** 通过 ToString 方法, 可以将枚举成员值,直接转换成对应的字符;

       通过 Enum.Parse(typeof(枚举类型),"字符");

      

 

   >>结构

    可以帮助我们一次性声明多个不同类型的变量

    [public] struct 结构名{

      成员; (字段)

    }

    字段: 结构体中的成员,命名方式,一般以 _ 开始,如:   publict string _name;

 

  >> 数组

    数据类型[] 变量名 = new 数据类型[数组长度];

    int[]  nums = new nums[10]; 

    ** Array.Sort(数组变量);

    ** Array.Reverse(数组变量);  

    

 **方法

 语法:  [public] static 返回值类型 方法名([参数列表]){

      方法体;

      }   

 return:

   a.在方法中返回要返回的值;

   b. 立即结束本次方法;

 

 调用方法:

  类名.方法名([参数]);

  若类名与main函数在同一个类中,可以省略类名;

 

>>关于方法的使用

  1. 编制函数时,功能一定要单一,不要将多个功能集成在一个函数中;

  2. 在编制函数时,不要在函数中有交互类的业务;

 

10. 关于方法中,参数修饰符的使用 (这一点需要注意)

  

  >> 关于out的使用

   参数定义时,需要配置out:          public static void Test1(int[] a, out int x, out int y, out int z)  

   参数使用时, 同样需要配置out:  (函数外部可以不赋值,函数内部必须赋值)

      

  >> 关于  ref 的使用 (外部必须赋初始值,函数内可以不处理)

    

 

  >> 可变参数 params的使用 (params只能是最后一个参数)

    

 

   >> 方法的重载

      函数名称一样,参数类型不同或者参数个数不一样 时,这些同名函数构成重载;

 

 

 

   

      

 

11.再说 面向过程 和 面向对象

  面向过程: 关注的是怎么做的问题;注重过程与步骤,不注重职责分工;对于复杂的项目,没有固定的套路,难度较大;

  面向对象:关注的是由谁来做的问题;对于一个功能的实现,可以由不同的对象,按不同的顺序来完成;是一种更大程度上的封装;

 

12. C#中关于类的使用说明

  

  ** 访问修饰符

    

   ** 关于类的创建

    

 

13. Array, ArrayList, List 

  Array: 数组,对同一类型数据的一个整体的定义,定义好以后,长度不允许变更;

  ArrayList: 

    大小是按其中存储的数据来动态扩充与收缩的;

    声明ArrayList时,不需要指定长度;

    可以方便的添加,修改,删除内部数据;

    ---- 但是

    存储数据时,使用的是 object类型,所以存在类型不安全的总是,(在添加时,不管什么类型都可以添加进去);

    数据存储存在 装箱,拆箱的操作,性能偏低;

  List: 

    与 ArrayList 一样,继承了相同的接口;所以使用上与ArrayList 相似;

    在声明List时,需要同时声明 List 集合内的对象类型;

 

 

14. 字典 Dictionary;

   Dictionary<keyType, ValueType> dic = new Dictionary<keyType,ValueTye>();

   按Java中的Map理解即可; 

    

 15. foreach

  * 数组操作

    

 

  * 集合操作

    

 

  * 字典操作

    

 

保留2位小数的三种方式

    

 

 

控制台背景色、前景色的使用

  

 

posted @ 2022-04-01 18:27  耗喜天涯  阅读(27)  评论(0编辑  收藏  举报