我知道你不能从实例成员中获取静态成员.
但是,让我说我在一个集会中:
public class ClassA
{
public List<order> GetOrders(int orderID)
{
...
}
}
Run Code Online (Sandbox Code Playgroud)
然后在另一个集会中:
public static ClassB
{
private static void DoSomethingElse(int orderID)
{
List<order> orderList = ClassA.GetOrders(orderID);
...rest of code
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法在A类中以其他方式获得该方法...有些解决这个问题?
Jon*_*eet 15
您当然可以从实例成员访问静态成员...但您应该理解为什么在没有实例的情况下无法访问实例成员.
您的课程基本上表示每个实例都ClassA允许您获取与特定ID相关联的订单列表.现在,不同的实例ClassA可能会产生不同的结果 - 例如,它们可能连接到不同的数据库.你想进入哪个结果DoSomethingElse?
举一个更简单的例子,假设我们有一个Person班级,每个人都有一个名字:
public class Person
{
public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
问"什么是Person.Name" 是否有意义?不 - 因为你没有说明你在说什么人.
您应该创建ClassA.GetOrders静态 - 如果它不涉及任何每个实例的信息,包括虚拟成员 - 或者在查找订单时ClassB了解ClassA要使用的实例.
如果您可以让我们知道这些类的更实际的名称,我们可以提供关于哪种解决方案更可能适合的指导......我个人通常会赞成后一种方法,因为静态成员通常导致可测试代码较少.