1

私は抽象クラスメソッドを持っています:

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 コードを再利用しており、ActualBLL メソッドを使用して Main_BO クラスを永続化しようとしている C# プレゼンター クラスを持っています。しかし、私はそれをコンパイルすることができません:

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

コンパイラはそれを少し好きではありません。ただし、VB では、次の行は正常にコンパイルされます。

bo = bll.Persist(bo);

私はここで少し途方に暮れています...

4

1 に答える 1

4

C# コンパイラはより厳密で、これらのキャストを挿入しません。

Main_BO bo = new Main_BO() ;
// ...
Base_BO br = bo ;
bo = (Main_BO) bll.Persist (ref br) ;
于 2012-09-26T03:31:11.713 に答える