gpt4 book ai didi

c# - 2 个类实现相同的接口(interface),但一个方法在两个类中具有相同的实现,从而导致重复代码

转载 作者:行者123 更新时间:2023-12-03 08:22:01 25 4
gpt4 key购买 nike

考虑以下场景:

public interface ITestInterface
{
void TestMethod1();
void TestMethod2();
}


public class TestParent
{
void SomeMethod()
{
Console.Writeln("Method of test parent");
}
}

public class Test1: TestParent, ITestInterface
{
void TestMethod1()
{
Console.WriteLine("Implementation 1 of TestMethod1");
}

void TestMethod2()
{
Console.log("Same implementation");
}
}

public class Test2: TestParent, ITestInterface
{
void TestMethod1()
{
Console.WriteLine("Implementation 2 of TestMethod1");
}

void TestMethod2()
{
Console.log("Same implementation");
}
}

TestParent 是一个现有类,Test1 和 Test2 是 TestParent 的子类并实现 ITestInterface。

在上面的示例中,两个类都具有相同的 TestMethod2() 实现。我只是想知道如何避免重复代码?我计划添加更多的类,它们都具有相同的 TestMethod2 实现。

最佳答案

您需要添加一个中间类(TestParentExtension),它扩展 TestParent 并实现 TestMethod2()。然后,您可以为 Test1 和 Test2 扩展这个中间类,而不是 TestParent。

给你。我为你清理了一些语法。

public interface ITestInterface {
void TestMethod1();
void TestMethod2();
}

public class TestParent {
public void SomeMethod() {
Console.WriteLine("Method of test parent");
}
}

public class IntermediateParent: TestParent {
public void TestMethod2() {
Console.WriteLine("Same implementation");
}
}

public class Test1: IntermediateParent, ITestInterface {
public void TestMethod1() {
Console.WriteLine("Implementation 1 of TestMethod1");
}

}

public class Test2: IntermediateParent, ITestInterface {
public void TestMethod1() {
Console.WriteLine("Implementation 2 of TestMethod1");
}
}

关于c# - 2 个类实现相同的接口(interface),但一个方法在两个类中具有相同的实现,从而导致重复代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67555229/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com