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# 面向对象编程(一) 类 第三篇

相关推荐
weixin_6495556712 分钟前
C语言程序设计第四版(何钦铭、颜晖)第十一章指针进阶之奇数值结点链表
c语言·开发语言·链表
书到用时方恨少!28 分钟前
Python os 模块使用指南:系统交互的瑞士军刀
开发语言·python
我是大猴子28 分钟前
事务失效的几种情况以及是为什么(详解)
java·开发语言
武藤一雄1 小时前
C#:nameof 运算符全指南
开发语言·microsoft·c#·.net·.netcore
带娃的IT创业者1 小时前
WeClaw_40_系统监控与日志体系:多层次日志架构与Trace追踪
java·开发语言·python·架构·系统监控·日志系统·链路追踪
Y001112361 小时前
JDBC原理
java·开发语言·数据库·jdbc
wertyuytrewm2 小时前
Java 异常|Java Exceptions
java·开发语言
雪碧聊技术2 小时前
深入理解 Java GC:从“房间清洁工”到解决系统卡顿实战
java·开发语言
大鹏说大话2 小时前
Java并发编程核心:线程安全、synchronized与volatile的深度剖析
java·开发语言
JAVA+C语言2 小时前
Java IO 流
java·开发语言