我的班级有单身人士和方法如下:
public class ProductManager
{
private static ProductManager _Value = null;
public static ProductManager Value
{
get { if (_Value == null) _Value = new ProductManager(); return _Value; }
}
public static void SaveProduct(string productname)
{
}
}
我在另一个程序集(SecondAssembly)中有另一个类,它包围了该类,如下所示:
public class BaseManager
{
public static FirstAssembly.ProductManager ProductManager
{
get
{
return FirstAssembly.ProductManager.Value;
}
}
}
在同一个程序集(SecondAssembly)中,我想通过BaseManager的这个属性访问ProductManager类的SaveProduct方法。但我无法这样做,它不会出现:
BaseManager.ProductManager.SaveProduct("abc"); // Can't access it..
请对我说,为什么我不能这样做?
答案 0 :(得分:0)
您正尝试通过实例访问静态方法。这是胡说八道。在这种情况下,您不需要实例。您只需拨打ProductManager.SaveProduct(...)
修改强>
如果您想ProductManager
BaseManager
,SaveProduct
可以SaveProduct
实例方法而不是静态方法,或者BaseManager
中包含public class BaseManager
{
...
public static SaveProduct(...)
{
ProductManager.SaveProduct(...);
}
}
:
SaveProduct
在我看来,最好让ProductManager
非静态,因为{{1}}无论如何都是单身
答案 1 :(得分:0)