在抽象类中声明并在派生类中初始化的结构在实例化时不可见
本文关键字:实例化 结构 初始化 声明 抽象类 派生 | 更新日期: 2023-09-27 17:56:56
我一直在寻找这个问题,但没有运气,我希望它不会重复。我有一个抽象类。
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类成为一个接口。
我做错了什么?
谢谢。
以下代码对我来说效果很好,所以也许您还有其他问题。
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
}
}
Estructura_TablaCuentasBancarias
是一个嵌套结构。为了在界面中IFDB
,您需要从IFDB
中提取嵌套结构
public interface IFDB
{
Estructura_TablaCuentasBancarias Foo { get; set; }
// other properties/functions from the IFDB class
}
public struct Estructura_TablaCuentasBancarias
{
// struct declaration
}