面向对象
文章平均质量分 50
编程思想
luckyone906
这个作者很懒,什么都没留下…
展开
-
C#-利用Marshal类实现序列化
主要是使用Marshal类里的两个方法:第一个是StructureToPtr,将数据从托管对象封送到非托管内存块。第二个是PtrToStructure,将数据从非托管内存块封送到新分配的指定类型的托管对象。只要有了这两个相互转换的方法,我们就可以实现序列化了。首先我们先来看下序列化序列化:有一个前提条件,那就是我们必须要知道需要序列化对象的大小。第一步:我们先求出对象的大小,然后在非托管内存中给它分配相应的内存大小。第二步:接着我们就把这个对象封送到刚分配出来的内存中,之后我们原创 2022-02-12 13:25:01 · 1241 阅读 · 0 评论 -
使用函数指针实现父类函数调用子类函数的两种方式
父子类关系对于继承关系中的父类和子类,我们可以说子类是父类的一种,子类继承了父类的属性和行为。因此,子类可以访问父类的所有非私有成员。相反,父类一般情况下是不能访问子类成员的。然而,我们可以通过一些方法间接的实现父类访问子类,即父类函数访问子类函数。方法一利用多态机制,一个指向子类的父类指针或引用,当调用被子类重写的虚函数时,实际上调用的是子类函数,这是通过多态的方式来实现父类调用子类,该方法需要一个引用或者指针调用虚函数来实现。如下面所示:Class Base{public:原创 2021-02-15 18:59:42 · 6312 阅读 · 5 评论 -
子类继承父类后调用virtual函数问题(base.函数名)
void Main(){SonB s = new SonB(); s.Show();//先调用子类的函数,再调用基类的函数(在子类方法中base.Show())}//**************public class SonB : BaseA { public string b = "bb"; public override void Show() { MessageBox.Sho...原创 2021-02-15 18:47:20 · 575 阅读 · 0 评论 -
C#使用DataContractJsonSerializer来进行JSON解析
在使用DataContractJsonSerializer进行解析之前,我们首先需要将两个包引入进来:using System.Runtime.Serialization;using System.Runtime.Serialization.Json;接下来需要新建一个class,DataContractJsonSerializer可以将JSON字符串转化为指定的class或者将class转化为JSON字符串。这次我接受的JSON数据格式为:{ "ret": "0", "Isupdate"原创 2020-07-14 22:00:46 · 3821 阅读 · 0 评论 -
C# 重写WndProc 消息循环
重写WndProc方法来处理 Windows 消息处理 Windows 消息。在开发winForm时,常常要处理Windows消息,可以重写WndProc来实现。常见代码如下:using System;using System.Drawing;using System.Windows.Forms;namespace csTempWindowsApplication1{public class Form1 : System.Windows.Forms.Form{// Constant原创 2020-07-14 21:48:03 · 1923 阅读 · 0 评论 -
C# override详解
重载、重写、覆写,分别指的是overload、override、new。一、override重写,是在子类中重写父类中的方法,两个函数的函数特征(函数名、参数类型与个数)相同。用于扩展或修改继承的方法、属性、索引器或事件的抽象或虚拟实现。提供从基类继承的成员的新实现,而通过override声明重写的方法称为基方法。注意事项:1.重写基方法必须具有与override方法相同的签名。2.override声明不能更改virtual方法的可访问性,且override方法与virtual方法必须具有相同级别原创 2020-06-14 20:27:15 · 16601 阅读 · 0 评论 -
C#中对虚拟属性和抽象属性的重写,重写label实例
从下面这个例子可以看出来区别 public abstract class A { //抽象属性不能有实现代码 public abstract string AbstractProperty { get; set; } string s; //虚拟属性可以有实现代码 ...原创 2020-04-01 20:23:30 · 2506 阅读 · 0 评论