【问题标题】:Access Parent Class without declaring property访问父类而不声明属性
【发布时间】:2015-08-25 05:56:47
【问题描述】:

我知道这是一个非常愚蠢的问题,但这可能吗?

说我有这门课

Class A
{
    string propertyA;
    Public A()
    {
        // do something here             
    }
}

然后这个:

Class B
{
    A classA;
    string propertyB;
}

通常我会这样做:

B classB = new B();
A classA = new A(); 
B.classA = classA; 

有没有办法实现这样的目标:

Class A
{
    string propertyA;
    Public A()
    {
        // get or set B's properties 
        // but the problem is this class doesnt have a Parent property 
    }
}

【问题讨论】:

  • 你不能使用B.classA = classA;,因为类成员默认是private
  • 我不确定您实际上要解决什么问题,但这个“解决方案”不是您所需要的。
  • 您能详细说明为什么您不能或不会将 A 中的引用存储回 B 吗?

标签: .net class inheritance


【解决方案1】:

不,没有办法做到这一点。

要访问另一个对象,您需要对它的引用。

如果您没有本地存储的引用,则需要一种方法来找到获取该引用。

如果两者都没有,则无法访问。

【讨论】:

  • 谢谢,请问有没有办法获得该参考资料?
  • 这是你必须知道的。您是否建立了获得该参考的方法?你当然不能在内存中搜索它。您是否将对 B 的引用存储在 A 可以获取的地方?如果不是,那么要么不,没有办法,要么是的,一旦你写了,就会有办法。同样,为什么不能简单地将引用存储在 A 中?当我们不知道为什么这是解决您问题的方法时,很难为您提供帮助。如果你能解释你在做什么,那么这个问题可能会有完全不同的解决方案。
  • 我无法更改类的属性,因为我只能使用它们。我想我必须想办法做到这一点!
  • 如果你不能改变类,为什么A首先需要访问B?大概它已经可以访问它需要的一切,否则无论如何你都需要更改它......还是我在这里遗漏了什么?
  • 我正在做一个现有的项目,并且有一些模块是固定的,意味着我们只能使用/继承它们,不能修改
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-04
  • 2016-02-11
相关资源
最近更新 更多