欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > C# >内容正文

C#

C#的几个学习要点

发布时间:2025/6/16 C# 66 豆豆
生活随笔 收集整理的这篇文章主要介绍了 C#的几个学习要点 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

初学C#,对很多概念都弄不清楚,特地写此总结:

面向对象:

  • 找个对象帮你做事;
  • 把出现在每个过程中事物,对象一般是被动的那个;
  • 屏蔽所有人的差异,写出通用的代码;

对象:一定是经过实例化之后的具体事物,看得见,摸得着。

 

面向对象的基础为抽象类,类的基本组成有:字段、属性、方法。

字段(Field):用于保存类中的数据,字段命名应该以下划线开头;

属性(Properties):保护、限定字段,对字段的赋值和取值进行限定;

方法(Method):类的作用、方法,执行的操作;

属性的本质就是两个方法:对象具有的各种特征,只是一个中间变量,本身并不保存任何数据,在对外输出时,应该使用属性;

  • set():用于控制赋值
  • get():用于控制取值

类:把多个对象共同具有的属性和方法抽象出来,进行封装,类就是模子,确定了对象应该具有的属性和方法。

 

静态类与非静态类

  • 在非静态类中,既可以有静态方法/字段/属性,也可以有非静态方法/字段/属性; 
  • 非静态方法,需要先实例化类;
  • 静态方法,都需要类名.方法名进行调用,而不能采用其他修饰字符;
  • 静态类/方法/函数中,只允许出现静态字段/属性等,而不允许出现实例字段/属性等;
  • 使用

  • 如果你想要你的类当做一个工具类,这个时候可以考虑写成静态类;
  • 静态类在整个资源项目中资源共享(堆,栈,静态存储区域),只有在程序结束之后,静态类才会释放资源,会非常消耗资源,尽量少用;
  • 方法中才有小括号,创建完对象,先执行构造函数;

    类的初始化:创建类,并对类的各个属性进行赋值的过程;

    类中的构造函数,用来创建对象,并且可以在构造函数中对对象进行初始化(给对象的每个属性依次进行赋值)

    • 构造函数是用来创建对象的特殊方法,方法名和类名一样,没有返回值,连void都不用
    • 构造函数可以有参数,new对象的时候传递参数即可;
    • 如果不指定构造函数,则类中有一个默认的无参构造函数;
    • 如果制定了构造函数,则不再有默认的无参构造函数,如果需要无参构造函数,则需要自己来写;
    • 构造函数可以重载,也就是多个参数不同的构造函数(一样的函数名字,但是参数的个数不一样);
    • 认识类图

     

    关键字:new

    • 在内存中开辟一块空间;
    • 在开辟的空间中创建对象;
    • 调用对象的构造函数进行初始化对象(要求构造函数的修饰符必须为public);

    关键字:this

    • 代表当前的类
    • 在类当中显示的调用本类的构造函数 :this

    关键字:base

    • 父类的构造函数要优先于子类的构造函数;
    • 调用基类上已经被其他方法重写的方法;
    • 指定创建派生类实例时应调用的基类构造函数;
    • 基类访问只能在构造函数、实例方法或实例属性访问器中进行;
    • 静态方法中使用base关键字是错误的

     

     

    析构函数

    • 析构函数(destructor)与构造函数相反,当对象脱离其作用域时(例如对象所在的函数已调用完毕),系统自动执行析构函数。析构函数往往用来做“清理善后”的工作(例如在建立对象时用new开辟了一片空间,应该退出前在析构函数中用delete释放)。
    • 析构函数名也应该与类名相同,只是在函数名前面加一个波浪符~,例如~stu(),以区别构造函数。它不能带任何参数,也没有返回值(包括void类型)。一个类只能有一个析构函数,不能重载。如果用户没有编写析构函数,编译系统会自动生成一个缺省的析构函数,它也不进行任何操作。所以许多简单的类中没有用显示的析构函数。
    • 在C#中使用解构器需要记住如下几点:
  • 一个类只能有一个解构器;
  • 解构器不能被继承或重载;
  • 解构器不能被调用,他们是自动被(编译器)调用的;
  • 解构器不能带修饰或参数
  •  

    对一个类的字段进行限制可以从set/get/构造函数进行;

     

    在类的方法中输出属性时,应该加上this,因为可能会受到局部变量的影响;

     

    快速引用命名空间:ALT+SHIFT+F10

     

    疑问:

  • 如果存在构造函数,在Main函数中,我仍然采用属性进行赋值,会怎么样呢?
    • 重新赋值的一个过程吧?
  • 属性设置为只读,是否还可以使用构造函数进行赋值?
  • 转载于:https://www.cnblogs.com/shuichangdong/p/8215748.html

    总结

    以上是生活随笔为你收集整理的C#的几个学习要点的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。