要实现不同类型的对象之间的通用性,可以使用泛型和接口。下面是一个示例代码:
// 定义一个接口,用于通用的操作
public interface IOperate
{
void DoSomething();
}
// 定义一个泛型类,用于处理不同类型的对象
public class AuditNet where T : IOperate
{
private T _obj;
public AuditNet(T obj)
{
_obj = obj;
}
public void Audit()
{
// 调用对象的通用操作
_obj.DoSomething();
// 执行其他审计逻辑
Console.WriteLine("Audit completed.");
}
}
// 定义一个实现接口的类
public class ObjectA : IOperate
{
public void DoSomething()
{
Console.WriteLine("Object A is doing something.");
}
}
// 定义另一个实现接口的类
public class ObjectB : IOperate
{
public void DoSomething()
{
Console.WriteLine("Object B is doing something.");
}
}
public class Program
{
public static void Main()
{
var objectA = new ObjectA();
var auditA = new AuditNet(objectA);
auditA.Audit();
var objectB = new ObjectB();
var auditB = new AuditNet(objectB);
auditB.Audit();
}
}
在上面的示例中,我们定义了一个IOperate
接口,包含了一个DoSomething
方法,这个方法是所有操作对象共有的。
然后,我们定义了一个泛型类AuditNet
,它接受一个实现了IOperate
接口的类型。在AuditNet
类的构造函数中,我们将传入的对象保存在私有字段中。
AuditNet
类还有一个Audit
方法,该方法首先调用对象的通用操作DoSomething
,然后执行其他审计逻辑。
最后,在Main
方法中,我们创建了两个不同类型的对象ObjectA
和ObjectB
,并分别使用AuditNet
类来进行审计。
通过使用泛型和接口,我们可以实现对不同类型对象的通用操作和处理。