只是一个基本的编程问题。
public class ClassA
{
int i = 10;
void Start()
{
ClassB b = new ClassB(this);
b.DoSomething();
}
}
public class ClassB
{
ClassA a;
public ClassB(ClassA a)
{
this.a = a;
}
void DoSomething()
{
Console.WriteLine(a.i);
}
}
我真的想省略a:
Console.WriteLine(a.i);
->
Console.WriteLine(i);
实现这一目标的最合理方法是什么?
(注意:ClassB不能继承ClassA,因为ClassA继承了ClassB所不能的东西。我想我应该说我不想将参数传递给函数,所以DoSomething(i)不适用。 )
答案 0 :(得分:0)
您可以创建一个属性。请注意,对于您的示例和我的示例,a.i
仍然需要public
。
public class ClassB
{
private ClassA a;
public ClassB(ClassA a)
{
this.a = a;
}
public int i { get { return a.i; } }
void DoSomething()
{
Console.WriteLine(i);
}
}