如何在 c# 中重新定义类
本文关键字:定义 新定义 | 更新日期: 2023-09-27 18:37:19
在VS中,我引用了一个库的DLL。
我想使用我自己对库/api 使用的类的定义,而不是库的。我想这样做是为了向现有类添加功能。
类扩展是不够的,因为我想向类添加新的静态方法。
我有要重新实现的类的源代码。
有没有办法在我的项目中重新定义类并使用它而不是 dll 的类,而无需导入库/dll 的整个源代码。我宁愿不导入整个源代码,只导入我要修改的类。
实际上,我要修改的类不是类而是结构体,并且没有部分修饰符。
尝试扩展方法:
namespace DLLNamespace
{
public struct TestStruct
{
public string Name { get; set; }
public void SetName(string name) { this.Name = name; }
}
}
namespace ProgramNamespace
{
public static class ExtensionMethods
{
public static void ReverseName(this DLLNamespace.TestStruct target)
{
target.Name = new string(target.Name.ToArray().Reverse().ToArray());
}
}
public class Program
{
static void Main(string[] args)
{
DLLNamespace.TestStruct ts;
ts.SetName("John");
ts.ReverseName();
Console.WriteLine(ts.Name);
}
}
}