gpt4 book ai didi

c# - 是否可以覆盖同一类(不是派生类)中基类中的方法?

转载 作者:太空狗 更新时间:2023-10-29 20:45:05 24 4
gpt4 key购买 nike

我的理解是,可以使用关键字 override 从派生类中覆盖基类中的方法(标记为 Virtual)。

但是重写同一个类中的方法呢?

在我的具体情况下,我有一个类 x 有 2 个方法。方法 ab 有一些共同的行为,并且 b 为方法 a 添加了功能。

过去,我在b 中复制了a 的代码,并将新功能添加到b 中。

我想知道是否有更好的方法,以便我可以集中方法 a 的行为。

    public class x
{
public static void a() {}
public static void b() {}
}

最佳答案

您可以简单地从您的方法 b() 中调用您的方法 a()。不需要(也没有办法)重写方法。

public class x
{
private static int _i = 0;

public static void a() {
_i = 1;
}
public static void b() {
a();
// here is _i = 1;
}
}

另一方面,您可以为您的方法设置参数重载

public class x
{
private static int _i = 0;

public static void a() {
a(1);
}
public static void a(int i) {
_i = t;
// common code which can use _i
}
}

在这种情况下,您可以调用 a(1)a() 得到相同的结果。

关于c# - 是否可以覆盖同一类(不是派生类)中基类中的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6289627/

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