实训第三天,老师讲了很多,感觉啥都没学,听老师将流程可以听懂,就是自己打不出一段完整的代码。纠结!
还是先总结今天所学内容吧:
1..控制台函数和方法
静态方法下面的成员都是静态的。静态成员是属于类,非静态的是属于对象
静态下面的都可以用点(.)出来
下面通过一个“弹钢琴小程序”来展示这些函数和方法:
static void Main(string[] args)
        {

            while (true)
            {
                ConsoleKeyInfo cki = Console.ReadKey(true);//读取按键
ConsoleKeyInfo cki=Console.ReadKey(true);
                int mark;

                if (int.TryParse(cki.KeyChar.ToString(), out mark))//判断按键是否是
数字,
                {
                    if (mark > 0 && mark < 8)//判断是否在1-7
                    {
                        Console.BackgroundColor = (ConsoleColor)mark;//设置色彩
                        for (int i = 1; i <= mark; i++)//添加空格
                        {
                            Console.Write(" ");
                        }

                        Console.Beep(int.Parse(cki.KeyChar.ToString()) * 1000, 
500);//播放声音
                        Console.WriteLine(cki.KeyChar);//打印数字

                    }

                }
            }
        }
2.数据类型
Object是所有其他类型的祖先(最根本的基础类型)
string字符串类型string s=”Hello”
Sbyte8-bit 有符号整数类型,范围-128-127
short16-bit有符号整数类型,范围–32,768...32,767

命名规则:匈牙利命名法;下划线命名法;驼峰命名法;帕斯卡命名法
重点是:值类型包括(简单类型,枚举类型,结构类型);应用类型(即非值类型)包括(类类型,接口类型,Unicode字符串,数组类型,委托类型)
也可以说所有值类型都属于结构类型,所有引用类型都属于类。


3.C#中的值类型实例
static void Main(string[] args)
        {
            int a = 5;                         // 给a赋值5
            int b = a;                         // 把a赋给b
            b = 10;                            // 给b赋值10
            Console.WriteLine(a);    // 把a的值输出,查看的变化是否影响
        }
程序结果是5
内部运行流程是:值类型的值都存储在线程堆栈中。先给整数A赋值为5,再把A的值赋给B,这时B=5,之后用10把B原来的值5覆盖,B的值是10但是A的值不变,依旧是5。
4.C#中的引用类型实例

static void Main(string[] args)
        {
            int[] Array_a =new int[]{5};              // 定义一个数组,有一个无素5
            int[] Array_b =Array_a;                   // 把Array_a赋给 Array_b
            Array_b[0] = 10;                             // 给Array_b的唯一元素赋值10
            Console.WriteLine(Array_a[0]);     // 把Array_a的唯一元素的值输
                                                                  // 出,查看Array_b中元素值的变
                                                                  // 化是否影响Array_a元素
        }
程序结果是10
内部运行流程是:数组属于引用类型,应用类型的值都存储在托管堆中,而数组名放在线程堆栈中。首先遇到new关键字,会给数组在托管堆中给数组开辟一段空间用来存放数值和链接数组名的地址。代码中,先给数组a的一个元素赋值为5,再把数组a的元素都直接付给数组b,这时托管堆中的值同时指向数组a和数组b,之后再把数组b第一个元素的值改为10,而这个值只好把原来的值5给替换掉,即指向数组a的也变为10
5.装箱和拆箱
装箱用于在垃圾回收堆中存储值类型。装箱是值类型到 object 类型或到此值类型所实现的任何接口类型的隐式转换。对值类型装箱会在堆中分配一个对象实例,并将该值复制到新的对象中。
6.类型的转换
Int i= int.Parse(“123”); 和int i=Convert.ToInt32(“123”);
Parse只可以把string类型转换成其他类型,而Convert.To类型可以转换的类型很多。
后面的差不多也没有啥么了,今天学习的内容不少,要好好消化了!