我在类中创建了一个函数。我想在整个项目中调用它。但我不想在每个页面中创建该类的对象。该课程是否有任何全球声明,以便我们可以在每个页面中调用?在aspx page .cs文件的代码后面是不可能继承的。
答案 0 :(得分:17)
您需要在类中创建一个Static
方法,以便您可以在不创建该类对象的情况下调用该函数,如下面的代码段所示:
public class myclass
{
public static returntype methodname()
{
//your code
}
}
调用该函数只需使用
//ClassName.MethodName();
myclass.methodname();
您可以查看MSDN:Static Members
<强>建议强>
解决问题的另一个方法是使用SINGLETON DESIGN PATTERN
<强>意图强>
答案 1 :(得分:5)
您只需要将其设为静态方法:
public class Foo
{
public static void Bar()
{
...
}
}
然后从任何地方:
Foo.Bar();
请注意,因为您没有在类型的实例上调用该方法,所以不会有任何特定于实例的状态 - 您可以访问任何静态变量,但不能任何实例变量。
如果需要特定于实例的状态,则需要有一个实例 - 获取适当实例的最佳方法将取决于您要实现的目标。如果您可以向我们提供有关课程和方法的更多信息,我们可以为您提供更多帮助。
不可否认,我记得,ASP.NET中的依赖注入(pre-MVC)有点痛苦,但你可能想要研究一下 - 如果方法改变任何静态状态,你最终会在线程方面难以测试和难以推理的东西。