自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 C#使用反射(Reflect)获取DLL文件中的类型,创建对象并调用对象的方法。

Activator.CreateInstance(Type type)这是一个通用的实例化对象方法,可以创建任意类型的对象。我们只需要将要创建的对象的类型作为参数传递给Activator.CreateInstance方法即可。返回的是一个object类型的实例,需要进行类型转换后才能调用具体的成员。Type.GetConstructor(Type[] types).Invoke(object[] parameters)这种方式通过构造函数来实例化对象。首先,我们需要使用Type.GetConstruct

2023-11-28 10:06:04 658

原创 c#序列化,反序列化,及示例

数据持久化:通过将对象转换为字节流(序列化),可以将对象的状态保存到文件、数据库或内存中,以便在需要时能够将对象重新加载到内存中(反序列化)。数据传输:将对象序列化为字节流后,可以在网络上传输,或者在不同应用程序之间进行通信。接收方可以通过反序列化将字节流还原为对象。跨平台和跨语言通信:通过序列化和反序列化,可以将对象转换为通用的格式(如XML、JSON、二进制),从而在不同平台或使用不同编程语言的系统之间进行数据交换和通信。对象复制:通过序列化和反序列化,可以实现对象的深拷贝,即创建一个与原始

2023-11-27 10:18:04 178

原创 C# 委托用内置Func、 Action还是用自定义delegate 委托类型

Func是一个泛型委托类型,用于表示具有输入参数T并返回结果TResult的方法。在示例中,我们使用了Func委托类型,它接受两个整数作为输入参数,并返回一个整数作为结果。Func委托类型可以根据需要定义不同数量的参数和不同类型的参数。例如,Func表示一个接受一个整数和一个字符串参数,并返回一个布尔值的方法的委托类型。使用委托类型可以将方法作为参数传递,以便在其他方

2023-11-24 07:50:07 84 1

原创 c# 定义类常用的模块

类的命名:根据C#的命名规范,类名应该使用帕斯卡命名法(Pascal Case),即每个单词的首字母大写,并且不包含下划线。成员的访问修饰符:类中的成员(字段、属性、方法等)可以使用不同的访问修饰符来指定其可访问性。常见的访问修饰符包括 public、private、protected 和 internal。根据需求和设计,选择适当的修饰符来限制成员的访问。构造函数:类可以定义一个或多个构造函数,用于创建对象并初始化其状态。构造函数的名称与类名相同,并且不能有返回类型。通过构造函数可以设置对象的初始

2023-11-23 09:00:03 161

原创 C# 多态性的实现: 继承和接口

通过父类引用子类的实现和接口引用实现接口的类,可以实现多态性,这是面向对象编程中非常重要的概念。父类引用子类的实现:允许我们使用父类的引用来指向一个子类的对象。这样做的好处是可以统一处理不同子类的对象,从而减少重复的代码。当我们使用父类的引用调用方法时,实际上会调用子类重写的方法,这就是多态性的体现。这样的设计可以提高代码的灵活性和可扩展性。接口引用实现接口的类:接口引用是一种更抽象的方式,它允许我们统一处理不同实现了同一接口的类的对象。通过接口引用实现类的对象,我们可以隐藏对象的具体类型

2023-11-21 14:20:39 846

原创 Sketchup脚本开发 ruby 实时显示选择物体的类型名称

Sketchup ruby脚本 实时显示选择物体的类型名称,直接在脚本中创建一个 HtmlDialog的方法

2023-11-16 08:32:59 307 1

原创 C# 对dll文件的创建、反射、用dnspy软件直接查看与修改原码

dll文件的创建、反射、用dnspy软件直接查看与编辑,使用C#的反射机制可以动态加载并调用dll文件中的类型和成员。可以使用Assembly类、Type类和MethodInfo类等进行反射操作,动态获取dll中的信息并调用其中的方法。在dnSpy中可以查看MyClassLibrary.dll文件的原始代码、反编译后的代码、IL代码等。可以浏览和分析MyClassLibrary.dll文件中的各个类、方法和成员,进行调试和修改。

2023-11-15 16:07:19 1434 1

原创 ruby中 map &: proc 三者的区别及示例

map方法是用来对数组中的每个元素进行处理并返回新数组的方法,而符号&:和proc对象都是用来简化对每个元素的操作的方式。它们可以互换使用,根据个人偏好和代码的可读性选择最合适的方法。

2023-11-13 21:27:14 412

原创 RUBY 中的块(Block)和Proc

在Ruby编程语言中,块(Block)和Proc是两个非常重要的概念,它们为Ruby提供了强大的函数式编程特性和灵活性。块和Proc经常用于回调函数、延迟执行、事件处理等场景中,它们使得代码更加灵活和可复用。

2023-11-10 08:34:57 304 1

原创 c#常见的强制转换

在C#中,强制类型转换是必要的,因为在编程过程中经常会涉及到不同数据类型之间的相互转换,而这些数据类型可能无法隐式地转换。强制类型转换的主要原因包括以下几点:类型兼容性:在某些情况下,需要将一种数据类型转换为另一种数据类型以满足特定的需求,例如将整数转换为浮点数,或者将字符串转换为整数等。强制类型转换能够确保数据在不同类型之间的兼容性。数据精度:在进行数值计算时,有时需要将一个数据类型转换为另一个数据类型以确保计算结果的精度和准确性,例如从整数向浮点数的转换,避免数据丢失。

2023-11-09 13:56:14 1014 1

原创 C# 一个完整的传递参数关键字 ref 和 out的示例

在C#中,ref和out都是用于向方法传递参数的关键字,它们之间有以下区别:参数的初始值:对于ref参数,在调用方法之前,必须为其赋予一个初始值。而对于out参数,在调用方法之前不需要为其赋值,方法内部会对其进行赋值。初始值的使用:在方法内部,ref参数可以读取和修改其初始值,而out参数只能修改其初始值。传递的方式:通过ref参数传递的是一个已经存在的变量的引用,而通过out参数传递的是一个新的变量的引用。

2023-10-29 07:59:11 86 1

原创 C# 一个完整的体现类继承的示例:继承

C#中的类继承是一种重要的面向对象编程概念,可以通过继承一个类(称为子类或派生类)来扩展另一个类(称为父类或基类)的功能。继承允许子类继承父类的属性、方法和其他成员,并且可以添加自己的额外成员或覆盖父类的成员。

2023-10-28 07:48:43 71

原创 C#一个完整的体现多态性示例: 抽象方法 虚方法 接口

抽象方法、虚方法和接口都是面向对象编程中实现多态性的重要概念,抽象方法是在抽象类中声明的,没有实现体,必须在其子类中实现。虚方法是在基类中声明的,有默认实现,可以被子类选择性地重写。接口是一组成员的声明,没有实现体,实现类必须提供这些成员的具体实现。

2023-10-27 07:07:38 56 1

原创 C# 一个完整的面向对象类的三大特性示例:封装 继承 多态

C#中类的封装、继承和多态封装将数据和方法组合成一个实体,并对外部隐藏细节;继承允许一个类继承另一个类的属性和方法,实现代码的重用和扩展;多态允许使用父类的引用指向子类的对象,并根据对象调用相同方法时,执行相应的实现。

2023-10-26 06:30:16 66

原创 C# 一个完整的类示例:字段、属性、构造函数和方法学习

C#类的基本使用方法,包括字段、属性、构造函数和方法

2023-10-25 07:36:37 90 1

原创 C# 一个完整的委托、事件学习示例

【代码】C# 一个完整的委托、事件学习示例。

2023-10-24 09:03:56 1461

Sketchup脚本开发 ruby 实时显示选择物体的类型名称

这段代码是一个SketchUp Ruby脚本,它创建了一个HtmlDialog来实时显示选择物体的类型名称。解释如下: require 'sketchup':这行代码用于引入SketchUp的API,以便在脚本中使用SketchUp的功能。 创建一个HtmlDialog:使用UI::HtmlDialog.new方法创建了一个HtmlDialog,并设置了对话框的各种属性,比如标题、大小、位置等。 设置HTML内容:使用dialog.set_html(html)方法将HTML字符串设置为对话框的内容,该HTML包含了一个标题和一个用于显示选择物体类型名称的段落。 获取当前选择的实体类型名称:定义了一个方法get_selected_entity_type,用于获取当前选择的实体的类型名称。 更新选择物体的类型名称:定义了一个方法update_entity_type,用于更新选择物体的类型名称,并调用了dialog.execute_script来执行JavaScript函数updateEntityType来更新显示内容。 创建一个自定义的SelectionObserver类:定义

2023-11-16

dnSpy6.19 强大的. NET程序集反编译和调试工具

dnSpy6.19是一个强大的. NET程序集反编译和调试工具。它可以帮助开发人员分析和编辑.NET程序集,以便进行修复错误、查找漏洞或进行逆向工程。DNSpy具有用户友好的界面,支持多种功能,包括反编译、调试、编辑IL代码和C#代码等。它还可以与Visual Studio集成,方便开发人员在开发过程中使用。DNSpy是一款免费的开源工具,适用于.NET开发人员和安全研究人员。

2023-10-26

C# 一个完整的类示例:字段、属性、构造函数和方法学习示例

这个示例展示了如何使用C#类来表示一个人,并使用字段、属性、构造函数和方法来操作和展示人的相关信息。在Person类中,有三个字段和一个属性: name字段用于存储人的姓名。 age字段是一个私有字段,用于存储人的年龄。由于是私有字段,我们通过公共属性Age来访问和设置它。 address字段是一个私有字段,用于存储人的地址信息。 Person类还有一个带有三个参数的构造函数:public Person(string name, int age, string address)。该构造函数用于初始化对象的name、age和address字段。 Person类中还有一个名为SayHello的公共方法。该方法用于打印"Hello"等问候语,包括人的姓名、年龄和地址信息。

2023-10-25

C# 一个完整的类 面向对象三大特性 封装 继承 多态 的示例

C# 一个完整的类 面向对象三大特性 封装 继承 多态 的示例 封装通过私有字段和公共方法来实现对数据的访问控制。 继承通过派生类Student继承自Person类,获得了Person类的所有属性和方法,并在此基础上扩展了自己的属性和方法。 多态通过Animal类和其子类Dog和Cat的MakeSound方法展示了同一段代码在不同对象上表现出不同的行为。

2023-10-25

C# 一个完整的委托、事件学习示例

该示例符合委托、事件的定义规则,并且可以帮助大家更好地理解委托和事件的使用! 先定义了一个名为MyEventArgs的类,继承自EventArgs,它包含一个Message属性,用于存储传递的消息。Publisher类中添加了一个protected virtual的方法OnMyEvent,用于触发MyEvent事件,并传递MyEventArgs对象作为参数。在PublishMessage方法中,实例化了一个MyEventArgs对象,并通过调用OnMyEvent方法来触发事件。 在Subscriber类中,修改了HandleEvent方法的签名,使其与MyDelegate委托类型匹配。当事件被触发时,通过MyEventArgs对象的Message属性获取传递的消息。

2023-10-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除