你所要求的不起作用,因为detail
它是一个私有变量并且在GetInfo()
方法的范围内。因此,无法从该方法外部访问它。
很难猜测这两种方法的上下文是什么;但是,我假设您应该在类中保留状态以允许detail
在ToString()
方法中呈现。
这个例子可能不是一个完美的解决方案,但它会解决你的问题:
class MySpecialDetails
{
// declare as private variable in scope of class
// hence it can be accessed by all methods in this class
private GetDetails _details; // don't name your type "Get..." ;-)
public GetDetails GetInfo()
{
// save result into local variable
return (_details = new GetDetails("john", 47));
}
public override string ToString()
{
// read local variable
return _details != null ? _details.Name + "|" + _details.Age : base.ToString();
}
}