在静态Web方法中调用非静态方法

时间:2015-08-13 12:39:11

标签: c# asp.net ajax json.net

在asp.net的静态Web方法中,如何调用非静态方法。

enter image description here

3 个答案:

答案 0 :(得分:5)

创建要调用方法的类的实例。

答案 1 :(得分:3)

创建非静态方法的实例

例如

public class ABC
{
    public void AB()
    {
    }

    public static void PQ()
    {
         ABC obj= new ABC ();
         obj.AB();
    }
}

答案 2 :(得分:3)

首先,您需要了解“静态”和“实例”之间的区别。从概念上讲,这意味着您正在尝试执行的操作。

实例操作是在对象的特定实例上执行的操作。落入过度使用的汽车类比......如果你要对你的汽车进行操作(驾驶它,将汽油放入油箱,碰撞它等),那么你将在特定汽车上执行该操作< / em>的。不是关于汽车的一般概念,不是所有汽车,不是所有相同类型的汽车,甚至不是另一辆完全相同的汽车。只需汽车。

静态操作与特定实例无关。它不适用于物理构造。对于汽车,您可能想要查找特定品牌和型号的消费者评级。您没有查找特定汽车的评级。两辆或更多相似的汽车将具有相同的评级。您只是查找有关汽车的概念的信息,无论其是否有任何特定的物理实例。

现在将此概念应用于代码中的静态和实例操作......

在静态操作中,您处于类的一般概念的上下文中。没有具体的例子。那么从概念上讲,你可以如何调用实例操作? (当你查看汽车的消费者评级时,你不能“推动”消费者评级。你需要一辆真正的汽车来开车。)

因此,关于您的代码,您有许多不同的方法:

  1. 可能需要在静态操作中创建实例并在该实例上执行实例操作。
  2. 可能消耗代码需要向静态操作提供现有实例,以便它可以使用该实例。
  3. 也许实例操作在逻辑上应该是静态的。
  4. 也许静态操作在逻辑上应该基于实例。
  5. 我们无法知道哪些选项最有意义。如果您提供一些有意义的背景,我们可以提供帮助但是您需要更好地了解您正在建模的系统以及您的操作。