12608人加入学习
(21人评价)
C#编程-第二季-面向对象-宇宙最简单2021最新版

制作完成于2021-10月20日 使用VS2019

价格 免费

列表的遍历

遍历的两种方式:

1.for循环,遍历所有的索引。

for(int i=0;i<list.Count;i++{

循环体;list[i]

}

2.foreach遍历。

List<int> list = new List<int>(50);
            list.Add(34);list.Add(234);
            foreach(int temp in list)
            {
                Console.WriteLine(temp);
            }

列表的一些常见操作(增加 删除 改 查) 

插入数据:list,Insert(i,list[i]);

删除数据:list.Remove(list[i]);只会移除匹配的第一个数据

 

[展开全文]

修饰符
修饰符,用来类型或者成员的关键字。修饰符可以指定方法的可见性。
public:同一程序集(DLL或EXE)中的任何其他代码或引用该程序集的其他程序集都可以访问该类型或成员。
private:只有同一类或结构中的代码可以访问该类型或成员。
. protected:只有同一类或结构或者此类的派生类中的代码扌可以访问该类型或成员。-internal:同一程序集中的任何代码都可以访问该类型或成员,但的代码不可以。protected internal:在一程序集中,protected internal体现的是internal的性质﹔在其他程序集中,protected internal体现的是protected的性质。
·

[展开全文]

public DrivedClass(int attack,int hp,int speed):base(hp,speed){
this.attack = attack;
}
 

这可以调用父类的值,

 

在子类的构造函数里加冒号:base(hp,speed)  调用父类的构造方法

[展开全文]

普通类里是不能包括抽象方法的

抽象方法只能包含在抽象类里,抽象类可以没有抽象方法。

.密封类   se

 

[展开全文]

base.   访问父类里面的成员

[展开全文]

private  访问权限最高,只能在本类中访问

proyected  访问权限中等,可以在子类中访问

public  访问权限最高、

this.  ---指定当前对象

[展开全文]

在类名后面加上冒号 :加上继承父类的类名

[展开全文]

栈空间比较小,但是读取速度快  ->商店
堆空间比较大,但是读取速度慢  ->仓库
 

栈的特征:
数据只能从栈的顶端插入和删除|
把数据放入栈顶称为入栈(push)
从栈顶删除数据称为出栈(pop)
-后进先出( Last In First Out )



堆是一块内存区域,与栈不同,堆里的内存能够以任意顺序存入和移除
 

GC Garbage Collector垃圾回收器
CL R的GC就是内存管理机制,我们写程序不需要关心内存的使用,因为这些都是CLR帮
我们做了。
 

[展开全文]

自动化创建

当你系统里没有创建一个属性

但定义了一个属性的简写方法,则系统会自动创建一个成员变量

(用于只读或只写)

 public int Id
        {
            get;set;
        }

//当没有的成员的定义去访问,则要通过属性去访问成员

Console.WriteLine("id:" + Id);

 

匿名类型

(根据你后面赋值来决定的)

var agv=20;   ->整型

var name="小李"  ->字符串类型

 

 

 

[展开全文]

//定义一个学生类

class Studens
    {
        private string name;
        private int agv;
        private string sex;
        private int id;

        //定义一个name的get和set方法
        //一、
        public void setName(string name)
        {
            this.name = name;
        }
        public string getName()
        {
            return name;
        }

        //简写版
        public string Name
        {
            get
            {
                return name;
            }
            set   //value 参数
            {
                name = value;
            }
        }


        public void Show()
        {
            Console.WriteLine("name:"+name);
            Console.WriteLine("agv:" + agv);
            Console.WriteLine("sex:" + sex);
            Console.WriteLine("id:" + id);
        }
        public Studens()
        {
        }
        public Studens(string name, int agv, string sex, int id)
        {
            this.name = name;
            this.agv = agv;
            this.sex = sex;
            this.id = id;
        }
    }

 static void Main(string[] args)
        {
            //调用刚创建类的对象
            Studens stu = new Studens();
            //stu.Show();

            stu.setName("张三");
            Console.WriteLine(stu.getName());

            stu.Name = "李四";
            Console.WriteLine(stu.Name);

        }

 

[展开全文]
洛晓晓 · 2022-11-01 · 017-属性 0

 static void Main(string[] args)
        {
            Console.WriteLine("请输入两个数字,每行一个");
            //string number1 = "";
            //int n1 = Convert.ToInt32(Console.ReadLine());
            //string number2 = Console.ReadLine();

            //在外面定义一个全局变量
            int n1 = 0;
            int n2 = 0;

            //try
            //{
            //    //在try里调用全局变量,来进行传值
            //     n1 = Convert.ToInt32(Console.ReadLine());
            //     n2 = Convert.ToInt32(Console.ReadLine());
            //}catch (FormatException e)
            //{
            //    Console.WriteLine("你输入的数据,不符合规则,请重新输入!");
            //    n1 = Convert.ToInt32(Console.ReadLine());
            //    n2 = Convert.ToInt32(Console.ReadLine());
            //}
            //上述代码还有问题 后面的用户输入没有进行异常检测,所以下述进行了完善
            while (true)
            {
                try { 
                    n1 = Convert.ToInt32(Console.ReadLine());
                    n2 = Convert.ToInt32(Console.ReadLine());
                    break;
                }
                catch (FormatException e)
                {
                    Console.WriteLine("你输入的数据,不符合规则,请重新输入!");
                }
                
            }
            Console.WriteLine(n1 + n2);
        }

[展开全文]

try{

//捕抓异常

}catch(){

//处理异常

catch块用来捕捉异常,当代码发生异常,那么异常的类型和catch块中的类型一样的时候,就会执行该catch块,如果catch块的参数不写,表示发生任何异常都执行这个catch块
 

}

finally{

不管代码有没有异常,都会执行

}

 

[展开全文]

异常处理(捕捉异常) try ... catch ... finally语句
我们处理异常的语法结构如下(包含了三个关键字try catch finally)
 

[展开全文]

如何查看自己的代码中有多少个断点;

调试-->窗口-->断点

[展开全文]

Console.ReadLine();  获取用户所输入的值;

[展开全文]

正常模式下的调试∶
正常模式指的是不会影响程序的正常运行。
1,在VS中我们使用Console.Write(或者WriteLine)方法向控制台输出变量的值,通过这个我们可以查看变量的值是否符合我们的预期来调试错误。
2,在Unity中我们使用Debug.Log("") Debug.LogError("") Debug.LogWarn(""),向unity的console窗口输出信息,帮助我们调试错误。
 

[展开全文]

设置属性的只读或者只写 private string name; public string name{ get{ return name; } }

属性可以值只提供⼀个set块或者get块

2、属性的访问修饰符 public string name{ get{ return name; } private set{ name = value; } }

3、⾃动实现的属性 public int Age{get;set;} 编译器会⾃动创建private int age属性

[展开全文]

异常检测代码

try{

//可能出现异常的代码

}

catch(){

//需要捕捉的异常

}

 

[展开全文]

授课教师

问问题加入A计划,有专门负责答疑的老师哦!!!

课程特色

下载资料(1)
视频(60)