- 博客(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 1228
原创 c#序列化,反序列化,及示例
数据持久化:通过将对象转换为字节流(序列化),可以将对象的状态保存到文件、数据库或内存中,以便在需要时能够将对象重新加载到内存中(反序列化)。数据传输:将对象序列化为字节流后,可以在网络上传输,或者在不同应用程序之间进行通信。接收方可以通过反序列化将字节流还原为对象。跨平台和跨语言通信:通过序列化和反序列化,可以将对象转换为通用的格式(如XML、JSON、二进制),从而在不同平台或使用不同编程语言的系统之间进行数据交换和通信。对象复制:通过序列化和反序列化,可以实现对象的深拷贝,即创建一个与原始
2023-11-27 10:18:04 234
原创 C# 委托用内置Func、 Action还是用自定义delegate 委托类型
Func是一个泛型委托类型,用于表示具有输入参数T并返回结果TResult的方法。在示例中,我们使用了Func委托类型,它接受两个整数作为输入参数,并返回一个整数作为结果。Func委托类型可以根据需要定义不同数量的参数和不同类型的参数。例如,Func表示一个接受一个整数和一个字符串参数,并返回一个布尔值的方法的委托类型。使用委托类型可以将方法作为参数传递,以便在其他方
2023-11-24 07:50:07 167 1
原创 c# 定义类常用的模块
类的命名:根据C#的命名规范,类名应该使用帕斯卡命名法(Pascal Case),即每个单词的首字母大写,并且不包含下划线。成员的访问修饰符:类中的成员(字段、属性、方法等)可以使用不同的访问修饰符来指定其可访问性。常见的访问修饰符包括 public、private、protected 和 internal。根据需求和设计,选择适当的修饰符来限制成员的访问。构造函数:类可以定义一个或多个构造函数,用于创建对象并初始化其状态。构造函数的名称与类名相同,并且不能有返回类型。通过构造函数可以设置对象的初始
2023-11-23 09:00:03 228
原创 C# 多态性的实现: 继承和接口
通过父类引用子类的实现和接口引用实现接口的类,可以实现多态性,这是面向对象编程中非常重要的概念。父类引用子类的实现:允许我们使用父类的引用来指向一个子类的对象。这样做的好处是可以统一处理不同子类的对象,从而减少重复的代码。当我们使用父类的引用调用方法时,实际上会调用子类重写的方法,这就是多态性的体现。这样的设计可以提高代码的灵活性和可扩展性。接口引用实现接口的类:接口引用是一种更抽象的方式,它允许我们统一处理不同实现了同一接口的类的对象。通过接口引用实现类的对象,我们可以隐藏对象的具体类型
2023-11-21 14:20:39 1249
原创 Sketchup脚本开发 ruby 实时显示选择物体的类型名称
Sketchup ruby脚本 实时显示选择物体的类型名称,直接在脚本中创建一个 HtmlDialog的方法
2023-11-16 08:32:59 464 1
原创 C# 对dll文件的创建、反射、用dnspy软件直接查看与修改原码
dll文件的创建、反射、用dnspy软件直接查看与编辑,使用C#的反射机制可以动态加载并调用dll文件中的类型和成员。可以使用Assembly类、Type类和MethodInfo类等进行反射操作,动态获取dll中的信息并调用其中的方法。在dnSpy中可以查看MyClassLibrary.dll文件的原始代码、反编译后的代码、IL代码等。可以浏览和分析MyClassLibrary.dll文件中的各个类、方法和成员,进行调试和修改。
2023-11-15 16:07:19 2274 1
原创 ruby中 map &: proc 三者的区别及示例
map方法是用来对数组中的每个元素进行处理并返回新数组的方法,而符号&:和proc对象都是用来简化对每个元素的操作的方式。它们可以互换使用,根据个人偏好和代码的可读性选择最合适的方法。
2023-11-13 21:27:14 505
原创 RUBY 中的块(Block)和Proc
在Ruby编程语言中,块(Block)和Proc是两个非常重要的概念,它们为Ruby提供了强大的函数式编程特性和灵活性。块和Proc经常用于回调函数、延迟执行、事件处理等场景中,它们使得代码更加灵活和可复用。
2023-11-10 08:34:57 445 1
原创 c#常见的强制转换
在C#中,强制类型转换是必要的,因为在编程过程中经常会涉及到不同数据类型之间的相互转换,而这些数据类型可能无法隐式地转换。强制类型转换的主要原因包括以下几点:类型兼容性:在某些情况下,需要将一种数据类型转换为另一种数据类型以满足特定的需求,例如将整数转换为浮点数,或者将字符串转换为整数等。强制类型转换能够确保数据在不同类型之间的兼容性。数据精度:在进行数值计算时,有时需要将一个数据类型转换为另一个数据类型以确保计算结果的精度和准确性,例如从整数向浮点数的转换,避免数据丢失。
2023-11-09 13:56:14 2028 1
原创 C# 一个完整的传递参数关键字 ref 和 out的示例
在C#中,ref和out都是用于向方法传递参数的关键字,它们之间有以下区别:参数的初始值:对于ref参数,在调用方法之前,必须为其赋予一个初始值。而对于out参数,在调用方法之前不需要为其赋值,方法内部会对其进行赋值。初始值的使用:在方法内部,ref参数可以读取和修改其初始值,而out参数只能修改其初始值。传递的方式:通过ref参数传递的是一个已经存在的变量的引用,而通过out参数传递的是一个新的变量的引用。
2023-10-29 07:59:11 160 1
原创 C# 一个完整的体现类继承的示例:继承
C#中的类继承是一种重要的面向对象编程概念,可以通过继承一个类(称为子类或派生类)来扩展另一个类(称为父类或基类)的功能。继承允许子类继承父类的属性、方法和其他成员,并且可以添加自己的额外成员或覆盖父类的成员。
2023-10-28 07:48:43 132
原创 C#一个完整的体现多态性示例: 抽象方法 虚方法 接口
抽象方法、虚方法和接口都是面向对象编程中实现多态性的重要概念,抽象方法是在抽象类中声明的,没有实现体,必须在其子类中实现。虚方法是在基类中声明的,有默认实现,可以被子类选择性地重写。接口是一组成员的声明,没有实现体,实现类必须提供这些成员的具体实现。
2023-10-27 07:07:38 119 1
原创 C# 一个完整的面向对象类的三大特性示例:封装 继承 多态
C#中类的封装、继承和多态封装将数据和方法组合成一个实体,并对外部隐藏细节;继承允许一个类继承另一个类的属性和方法,实现代码的重用和扩展;多态允许使用父类的引用指向子类的对象,并根据对象调用相同方法时,执行相应的实现。
2023-10-26 06:30:16 101
Sketchup脚本开发 ruby 实时显示选择物体的类型名称
2023-11-16
dnSpy6.19 强大的. NET程序集反编译和调试工具
2023-10-26
C# 一个完整的类示例:字段、属性、构造函数和方法学习示例
2023-10-25
C# 一个完整的类 面向对象三大特性 封装 继承 多态 的示例
2023-10-25
C# 一个完整的委托、事件学习示例
2023-10-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人