C# 面向对象编程(一)——类 第三篇

总目录
C# 语法总目录
系列链接
C# 面向对象编程(一) 类 第一篇
C# 面向对象编程(一) 类 第二篇
C# 面向对象编程(一) 类 第三篇

C# 面向对象编程 一 ------类 第三篇

    • 简介
    • 面向对象编程
      • [类 第三篇](#类 第三篇)
        • [9. 重载运算符](#9. 重载运算符)
        • [10. 分部方法](#10. 分部方法)
        • [** nameof方法 **](#** nameof方法 **)
        • [** GetType 方法和 typeof方法 **](#** GetType 方法和 typeof方法 **)
        • [** ToString方法 **](#** ToString方法 **)
      • 结构体

简介

主要记录的是面向对象编程中,类重载运算符,分部方法的使用和一些常用方法,以及结构体的一些注意事项

面向对象编程

类 第三篇

9. 重载运算符
csharp 复制代码
internal class PersonIntroduce
{
    private int a;
    public int A { get => a; set => a = value; }
    public PersonIntroduce()
    {
        a = 1;
    }
    ~PersonIntroduce()
    {
        Console.WriteLine("结束了");
    }

    public static PersonIntroduce operator +(PersonIntroduce a, PersonIntroduce b)
    {
        PersonIntroduce per = new PersonIntroduce();
        per.a = a.a + b.a;
        return per;
    }
}
static void Main(string[] args)
{
    PersonIntroduce pi = new PersonIntroduce();
    PersonIntroduce pj = new PersonIntroduce();
    Console.WriteLine((pi + pj).A); 
   
}
//输出
2
10. 分部方法

方法的声明和定义可以在不同文件里面,但是需要再同一个命名空间,添加 partial 关键字

csharp 复制代码
partial class PersonIntroduce
{
    partial void Add();
}
partial class PersonIntroduce
{    partial void Add()
    {

    }
}
** nameof方法 **

可以返回任意类型 或者成员 或者变量的字符串名称

csharp 复制代码
Person p = new Person();
string name = nameof(p);		//输出 p

int num = 10;
string name = nameof(num);		//输出 num
** GetType 方法和 typeof方法 **

使用这个两个方法可以获取当前对象的类,两个都是返回的 System.Type 类型

csharp 复制代码
Dog dog = new Dog();
Console.WriteLine(dog.GetType() == typeof(Dog));
** ToString方法 **

可以在类中重写该方法

结构体

结构体和类相比,结构体是值类型,类是引用类型。结构体无法继承。

结构体可以包含:

  • 字段初始化器
  • 无参数的构造器
  • 终结器
  • 虚成员或 protected 成员
csharp 复制代码
public struct Point{
    int x,y;
    public Point(int x,int y){ this.x = x; this.y = y;}
}

总目录
C# 语法总目录
系列链接
C# 面向对象编程(一) 类 第一篇
C# 面向对象编程(一) 类 第二篇
C# 面向对象编程(一) 类 第三篇

相关推荐
落落落sss19 分钟前
MybatisPlus
android·java·开发语言·spring·tomcat·rabbitmq·mybatis
简单.is.good37 分钟前
【测试】接口测试与接口自动化
开发语言·python
Yvemil71 小时前
MQ 架构设计原理与消息中间件详解(二)
开发语言·后端·ruby
程序员是干活的1 小时前
私家车开车回家过节会发生什么事情
java·开发语言·软件构建·1024程序员节
我是陈泽1 小时前
一行 Python 代码能实现什么丧心病狂的功能?圣诞树源代码
开发语言·python·程序员·编程·python教程·python学习·python教学
优雅的小武先生1 小时前
QT中的按钮控件和comboBox控件和spinBox控件无法点击的bug
开发语言·qt·bug
明耀1 小时前
WPF RadioButton 绑定boolean值
c#·wpf
虽千万人 吾往矣1 小时前
golang gorm
开发语言·数据库·后端·tcp/ip·golang
创作小达人2 小时前
家政服务|基于springBoot的家政服务平台设计与实现(附项目源码+论文+数据库)
开发语言·python
郭二哈2 小时前
C++——list
开发语言·c++·list