我有一个抽象的类方法:

Public Class Base_BLL
{
    Public Overridable Function Persist(ByRef x As Base_BO) As Base_BO
    {
    }
}

Public CLass ActualBLL Inherits Base_BLL
{
}

public Class Main_BO Inherits Base_BO
{
}


我正在重用旧的vb代码,并且有一个C#演示者类,该类正在尝试使用ActualBLL方法持久化Main_BO类。但是我无法编译它:

ActualBLL bll = new ActualBLL()
Main_BO bo = new Main_BO()
bo.ID="3"
bo = bll.Persist(ref bo)


编译器一点都不喜欢它。但是,在VB中,以下行可正常编译:

bo = bll.Persist(bo);


我在这里有点茫然...

最佳答案

C#编译器更加严格,它不会为您插入这些强制类型转换。

Main_BO bo = new Main_BO() ;
// ...
Base_BO br = bo ;
bo = (Main_BO) bll.Persist (ref br) ;

关于c# - 在C#中实现抽象byref方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12594072/

10-11 04:52