2

私はこの質問を探していましたが、運がなかったので、繰り返されないことを願っています. 私は1つの抽象クラスを持っています。

public abstract class IFDB
{
     public struct Estructura_TablaCuentasBancarias
    {
        public string NombreTabla;
        public string NumeroDeCuenta;
        public string Entidad;
        public string DNIPropietario;

        public Estructura_TablaCuentasBancarias(string NombreTabla, string NumeroDeCuenta, string Entidad, string DNIPropietario)
        {
            this.NombreTabla = NombreTabla;
            this.NumeroDeCuenta = NumeroDeCuenta;
            this.Entidad = Entidad;
            this.DNIPropietario = DNIPropietario;
        }
    }

}

そして派生クラス:

class CntrDBSQLSRVCompac: IFDB
{
     public readonly Estructura_TablaCuentasBancarias TablaCuentasBancarias =
        new Estructura_TablaCuentasBancarias("CuentasBancarias", "Numero De Cuenta", "Entidad", "DNI Propietario");

プログラムで私はインスタンスを実行しました:

protected IFDB ClsCntrlDB;
...

ClsCntrlDB = new CntrDBSQLSRVCompac();

しかし、estructure「TablaCuentasBancarias」を使用しようとすると、可能な関数/変数のリストにありません。構造体のインスタンス化と初期化を IFDB クラスで行えば完璧に動作しますが、IFDB クラスをインターフェイスにしたいと考えています。

私が間違っていることは何ですか?

ありがとうございました。

4

2 に答える 2

0

次のコードは私にとっては問題なく機能するため、他の問題がある可能性があります。

abstract class FooBase
{
    public struct Bar
    {

    }
}

class Foo : FooBase
{
    public readonly Bar BarInstance = new Bar();
}

class TestClass
{
    public static void Test()
    {
        var foo = new Foo();
        var bar = foo.BarInstance; //works fine
    }
}
于 2013-01-30T20:14:53.013 に答える
0

Estructura_TablaCuentasBancarias is a nested structure. In order to make IFDB in interface you'll need to extract the nested struct from IFDB

public interface IFDB
{
    Estructura_TablaCuentasBancarias Foo { get; set; }

    // other properties/functions from the IFDB class
}

public struct Estructura_TablaCuentasBancarias
{
    // struct declaration
}
于 2013-01-30T20:22:29.700 に答える