相关疑难解决方法(0)

内部抽象方法.为什么有人会拥有它们?

我今天正在进行一些代码审查,并遇到了一些开发人员编写的旧代码.它就是这样的

public abstract class BaseControl
{
    internal abstract void DoSomething();
}
Run Code Online (Sandbox Code Playgroud)

如果在同一个程序集中有派生类,它就可以工作

public class DerivedControl : BaseControl
{
    internal override void DoSomething()
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

但是在不同的程序集中派生基类会产生编译时错误

DerivedControl does not implement inherited abstract member 'BaseControl.DoSomething()
Run Code Online (Sandbox Code Playgroud)

这让我思考.为什么有人会将方法声明为内部抽象?

c# inheritance abstract-class overriding access-modifiers

14
推荐指数
2
解决办法
3541
查看次数

为什么我不能从GridViewRowPresenterBase派生出来?

为什么我不能从GridViewRowPresenterBase派生出来?

public class GridViewRowPresenterEx : GridViewRowPresenterBase
{
    protected override void OnColumnPropertyChanged(GridViewColumn c, string s)
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到以下编译错误:

'GridViewRowPresenterEx'不实现继承的抽象成员System.Windows.Controls.Primitives.GridViewRowPresenterBase.OnColumnPropertyChanged(System.Windows.Controls.GridViewColumn,string)'

'GridViewRowPresenterEx.OnColumnPropertyChanged(System.Windows.Controls.GridViewColumn,string)':找不到合适的方法来覆盖

.net c# wpf

3
推荐指数
1
解决办法
85
查看次数