C#笔记 | C#的基础知识(L1-L5)


661 观看次数
2058 字数
0 评论

Lesson1 | 输入和输出

    //第一种注释 两杠注释
    //第二种注释 星号注释
    //第三种注释 三杠注释
    
    using System;
    
    /// <summary>
    /// 命名空间 —— 工具包
    /// </summary>
    namespace Lesson1_第一个应用程序
    {
        //命名空间 代码块
        //知识点:面向对象的编程
    
        /// <summary>
        /// 类 —— 工具
        /// </summary>
        class Program
        {
            //类代码块 知识点:面向对象的编程
    
            /// <summary>
            /// 函数 —— 工具可以做的事
            /// </summary>
            /// <param name="args"></param>
            static void Main(string[] args)
            {
                //函数代码块 我们目前学习基础知识时
                //所有的代码 都写在这里
    
                //控制台 输出并且自动换行
                Console.WriteLine("请输入信息,按回车结束:");
    
                //控制台 输入内容并且按回车结束
                Console.ReadLine();
    
                //控制台 输出但是不自动换行
                Console.Write("你已经输入,");
                Console.Write("欢迎!" + '\n'); // \n是转义符号,意思是换行,且用''
    
                //控制台 输出并且自动换行
                Console.WriteLine("按任意键继续...");
    
                //控制台 读取按下的任意键
                Console.ReadKey();
    
                //控制台 输出并且自动换行
                Console.WriteLine("是你按下的按键,已确认继续!");
            }
        }
    }

Lesson2 | 变量

//引用命名空间
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

//命名空间
namespace Lesson2_变量
{
    //类
    class Program
    {
        //函数
        static void Main(string[] args)
        {
            //函数语句块 目前学习均在这
            Console.WriteLine("第二课 变量");

            #region 知识点一 折叠代码
            //主要作用 使得我们在编程时 逻辑更加清晰
            //它是由 #region 和 #endregion 构成的
            //它的具体作用 将中间的代码折叠起来 避免代码太凌乱
            //本质是 IDE提供给我们的 预处理指令
            //只有在编辑时才有用 在发布代码时 在执行程序时 会被自动删除
            #endregion

            #region 知识点二 如何申明变量
            //变量 可以变化的容器
            //变量 就是可以用来存储不同类型数值的容器
            //不同类型的变量 可以存储对应类型的数据

            /*
             * 变量声明的固定写法
             * 变量类型 变量名 = 初始值 ;
             */
            // int 整型变量 = 1;
            // 变量类型有14种 是需要背的
            // 变量名有命名规范 是要按规范命名的
            // 初始值要和变量类型统一 否则会报错

            /*
             * 变量类型
             * 1. 一定要死记硬背 各种变量类型的关键字
             * 2. 一定要记住 各种不同变量类型 所能存储的范围
             * 3. 一定要记住 各种不同变量类型 所能存储的类型
             */

            //1.有符号的整形变量 | 是能存储 一定范围 正负数包括0的变量类型
            // sbyte | 范围 -128~127
            sbyte sb = 1;
            // int   | 范围 -21亿多~21亿多
            int i = 1;
            // short | 范围 -32768~32767
            short s = 1;
            // long  | 范围 -9百万兆~9百万兆
            long l = 1;
            Console.WriteLine("这是sbyte变量sb中的值:" + sb );
            Console.WriteLine("这是int变量i中的值:" + i);
            Console.WriteLine("这是short变量s中的值:" + s);
            Console.WriteLine("这是long变量l中的值:" + l);

            //2.无符号的整型变量 | 是能存储 一定范围 非负整数的变量类型
            // byte   | 范围 0~225
            byte b = 0;
            // uint   | 范围 0~42亿多
            uint ui = 2;
            // ushort | 范围 0~65535
            ushort us = 65535;
            // ulong  | 范围 0~18百万兆
            ulong ul = 0;
            Console.WriteLine("这是byte变量b中的值:" + b);
            Console.WriteLine("这是uint变量ui中的值:" + ui);
            Console.WriteLine("这是ushort变量us中的值:" + us);
            Console.WriteLine("这是ulong变量ul中的值:" + ul);

            //3.浮点数(小数)
            //float 存储7/8位有效数字 根据编辑器不同 有效数字也可能不一样
            //当超出有效数字以后 四舍五入
            //之所以要在后面加f 是因为c#中 申明小数默认是double的类型 加f或者F 是告诉系统 它是float类型
            float f = 0.1234567890f; 
            Console.WriteLine("这是float变量f中的值:" + f);
            //double 存储15~17位有效数字 根据编辑器不同 有效数字也可能不一样
            //当超出有效数字以后 四舍五入
            double d = 0.12345678901234567890;
            Console.WriteLine("这是double变量d中的值:" + d);
            //decimal 存储27~28位的有效数字 (不建议使用)
            //之所以要在后面加m 是因为c#中 申明小数默认是double的类型 加m或者M 是告诉系统 它是decimal类型
            decimal de = 0.123456789012345678901234567890m;
            Console.WriteLine("这是decimal变量de中的值:" + de);

            //4.特殊类型
            /* bool
             * 布尔类型 或 真假类型 | 只能存储 ture false 表示真假的数据类型
             */
            bool bo1 = true;
            bool bo2 = false;
            Console.WriteLine("bo1: " + bo1 + " | " + "bo2: "+bo2);
            /*
             * char
             * 查尔类型 或 字符类型 | 是用来存储 单个字符 的变量类型
             */
            char c = '茶';
            Console.WriteLine("char:  " + c);
            /*
             * string
             * 字符串类型          | 是用来存储 多个字符且没有上限 的变量类型
             */
            string str = "哈哈哈哈,2333333333,咕咕咕咕咕咕咕咕咕咕咕咕咕咕咕咕咕咕咕咕咕咕咕";
            Console.WriteLine("string:  " + str);
            #endregion

            #region 知识点三 为什么会有这么多的变量类型
            //注意:变量的使用不能无中生有 必须声明以后才能使用 而且不要多次重复声明变量
            i = i + 1;

            /* 不同的变量 存储的范围和类型不同 本质是占用的内存空间不同
            *  选择不同的数据(变量)类型装载不同的数据
            */
            //例如 以下的场景
            //姓名 | 字符串
            string UserRealName = "小德";
            //年龄 | 数字 且 不为负数 不大于255
            byte UserAge = 17;
            //身高 | 数字 且 可以为小数 单位为cm
            float UserHeight = 176.5f;
            //体重 | 数字 且 可以为小数 单位为kg
            float UserWeight = 68.5f;
            //性别 | 两个值(男或者女) ture——女 false——男
            bool UserSex = false;

            //对于初学 数字用int 小数用float 字符串用string 真假用bool
            #endregion

            #region 知识点四 多个相同类型变量的同时申明
            // 同时声明的方法即使用 , 把它们分开
            // 变量类型 变量名 = 初始值 , 变量名 = 初始值 ...;
            int Val1 = 1, Val2 = 2;
            #endregion

            #region 知识点五 变量初始化相关
            //变量申明时 可以不设置初始值 但是不建议这样写 因为这样写不安全
            int TestEmpty;
            #endregion
        }
    }
}

Lesson3 | 变量的本质

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Lesson3_变量的本质
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("第三课 变量的本质");

            #region 变量类型回顾
            // 类型1 | 有符号的整数
            // sbyte     [-128~127]
            // int       [-21亿多~21亿多]
            // short     [-3万多~3万多]
            // long      [-9百万兆多~9百万兆多]

            // 类型2 | 无符号的整数
            // byte      [0~255]
            // uint      [0~42亿多]
            // ushort    [0~6万多]
            // ulong     [0~18百万兆多]

            // 类型3 | 浮点数(以有效数字计)
            // float     [7~8位有效数字]
            // double    [15~17位有效数字]
            // decimal   [27~28位有效数字]

            // 类型4 | 特殊类
            // bool      [布尔数 true 或 false]
            // char      [查尔数 只能存储 一个字符]
            // string    [字符串 可以存储 一串字符]
            #endregion

            #region 知识点1 | 变量的存储空间(在内存中的存储空间)
            // 1byte = 8bit
            // 1MB = 1024byte
            // 1GB = 1024MB
            // 1TB = 1024GB

            // 通过sizeof方法 可以获取变量类型所占的内存空间 (单位:字节)
            // 有符号
            Console.WriteLine("========== 这是 有符号 的变量的内存空间 ==========");
            int SizeSbyte = sizeof(sbyte);
            Console.WriteLine("sbyte   所占的字节数为:" + SizeSbyte);
            int SizeInt = sizeof(int);
            Console.WriteLine("int     所占的字节数为:" + SizeInt);
            int SizeShort = sizeof(short);
            Console.WriteLine("short   所占的字节数为:" + SizeShort);
            int SizeLong = sizeof(long);
            Console.WriteLine("long    所占的字节数为:" + SizeLong);
            //无符号
            Console.WriteLine("========== 这是 无符号 的变量的内存空间 ==========");
            int SizeByte = sizeof(byte);
            Console.WriteLine("byte    所占的字节数为:" + SizeByte);
            int SizeUint = sizeof(uint);
            Console.WriteLine("uint    所占的字节数为:" + SizeUint);
            int SizeUshort = sizeof(ushort);
            Console.WriteLine("ushort  所占的字节数为:" + SizeUshort);
            int SizeUlong = sizeof(ulong);
            Console.WriteLine("ulong   所占的字节数为:" + SizeUlong);
            //浮点数
            Console.WriteLine("========== 这是 浮点数 的变量的内存空间 ==========");
            int SizeFloat = sizeof(float);
            Console.WriteLine("float   所占的字节数为:" + SizeFloat);
            int SizeDouble = sizeof(double);
            Console.WriteLine("double  所占的字节数为:" + SizeDouble);
            int SizeDecimal = sizeof(decimal);
            Console.WriteLine("decimal 所占的字节数为:" + SizeDecimal);
            //特殊型
            Console.WriteLine("========== 这是 特殊型 的变量的内存空间 ==========");
            int SizeBool = sizeof(bool);
            Console.WriteLine("bool    所占的字节数为:" + SizeBool);
            int SizeChar = sizeof(char);
            Console.WriteLine("char    所占的字节数为:" + SizeChar);
            // sizeof是无法得到 string类型 的内存空间的 因为 字符串的大小是可变的!
            // 你只能得一个 可以确定大小 的变量的内存空间
            #endregion


            #region 知识点2 | 变量的本质

            #endregion
        }
    }
}

Lesson4 | 变量的命名规范

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Lesson4_变量的命名规范
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("第四课 变量的命名规则");
            // c#对大小写敏感 区分命名的大小写 区分函数的大小写

            #region 知识点1 | 必须要遵守的规则
            Console.WriteLine("========== 知识点1 ==========");
            Console.WriteLine("1. 不能重名;");
            Console.WriteLine("2. 不能使用数字作为开头;");
            Console.WriteLine("3. 不能使用程序关键字;");
            Console.WriteLine("4. 不能使用特殊符号(下划线_除外)。");
            // 建议的命名规则:
            // √ 变量名要有含义 | 用英文(或拼音)表示变量的含义
            // 非常不建议的命名规则:
            // × 变量名使用中文 | 不同的环境或者编辑器要求不同 可能导致报错
            #endregion

            #region 知识点2 | 常用的命名规则
            // 驼峰命名法 | 变量的命名
            // ★首字母小写,之后的单词首字母大写
            string myName = "myName";
            string yourBMI = "yourBMI";
            string yourUserName = "yourUserName";
            Console.WriteLine("例如:" + myName + "," + yourBMI + "," + yourUserName + "...");

            // 帕斯卡命名法 | 函数、类的命名
            // ★所有单词首字母都大写
            #endregion
        }
    }
}

Lesson5 | 常量

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Lesson5_常量
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("第五课 常量");

            #region 知识点1 | 常量的申明
            // 关键字 const
            // 固定写法 | const 变量类型 变量名 = 初始值;
            // 常量是不可修改的  一般是游戏中不易修改的东西
            // 比如 BOSS的攻击数值 某个奖励的数值 固定的数学数值 等等
            #endregion

            #region 知识点2 | 常量的特点
            // 1.必须要初始化
            // 2.不可以被修改
            const int attackBoos_Skill1 = 15;
            const string textBoos_Skill1 = "旋风斩";
            int yourLifePoint = 10;

            Console.WriteLine();
            Console.WriteLine("■■■■■■■■■■■■■■■■■■■■");
            Console.WriteLine("■ 请切换输入法为英文模式以防止误操作 ■");
            Console.WriteLine("■■■■■■■■■■■■■■■■■■■■");
            Console.WriteLine();

            Console.WriteLine("===== 按下 y 吃掉生命果实,按下 其他按钮 不吃生命果实 =====");
            if ("Y" == Console.ReadKey().Key.ToString())
            {
                Console.WriteLine('\n' + "★ 恭喜!你吃掉了 生命果实 | 生命 +65");
                yourLifePoint = yourLifePoint + 100;
            }
            else
            {
                Console.WriteLine('\n' + "☆ 啊,你没有吃掉 生命果实 | 生命 +0");
            }
            Console.WriteLine("■ 你现在的生命值:" + yourLifePoint);

            Console.WriteLine("===== 发现前方有 Lv1 的BOOS | 按下 任意键 开始战斗!! =====");
            if (null != Console.ReadKey())
            {
                Console.WriteLine('\n' + "▲ 不好!你受到攻击 " + textBoos_Skill1 + " | 生命 -" + attackBoos_Skill1);
                yourLifePoint = yourLifePoint - attackBoos_Skill1;
            }
            if (yourLifePoint >= 0)
            {
                Console.WriteLine("■ 你现在的生命值:" + yourLifePoint);
            }
            else
            {
                yourLifePoint = 0;
                Console.WriteLine("■ 你现在的生命值:" + yourLifePoint);
                Console.WriteLine("☆ 啊,你失败了。");
                Environment.Exit(0);
            }

            Console.WriteLine("===== 轮到你反击了! | 可以使用 次元斩 按下 y 即可释放 =====");
            if ("Y" == Console.ReadKey().Key.ToString())
            {
                Console.WriteLine('\n' + "★ 恭喜!你胜利了!");
            }
            #endregion
        }
    }
}

评论区

还没有人评论

添加新评论