Gib*_*boK 6 .net c# asp.net oop
我的理解是可以Virtual使用关键字从派生类覆盖基类中的方法(标记为)override.
但是在同一个类中重写一个方法呢?
在我的具体情况下,我有一个x有2种方法的类.方法a具有一些常见的行为b,并b为方法添加功能a.
在过去,我复制了ain 的代码b并添加了新功能b.
我想知道是否有更好的方法,所以我可以集中方法的行为a.
public class x
{
public static void a() {}
public static void b() {}
}
Run Code Online (Sandbox Code Playgroud)
Dan*_*elB 11
您只需在方法中调用a()方法即可b().不需要(也没办法)覆盖方法.
public class x
{
private static int _i = 0;
public static void a() {
_i = 1;
}
public static void b() {
a();
// here is _i = 1;
}
}
Run Code Online (Sandbox Code Playgroud)
另一方面,您可以为您的方法设置参数重载.
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
}
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您可以调用a(1)或a()使用相同的结果.
您不能在同一个类中覆盖,只能在派生类中执行此操作.您可以将方法的常见行为放在方法a中,然后从方法b中调用它.
public static void a()
{
// some common functionality
}
public static void b()
{
// do something
a(); //call a
//do something else
}
Run Code Online (Sandbox Code Playgroud)
您可以根据需要多次从b内拨打电话.
| 归档时间: |
|
| 查看次数: |
2853 次 |
| 最近记录: |