Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#从同一名称空间中的不同类调用helper函数,无需前缀,并且可以访问System.Web.UI.Page_C#_Class_Oop_Static_Namespaces - Fatal编程技术网

C#从同一名称空间中的不同类调用helper函数,无需前缀,并且可以访问System.Web.UI.Page

C#从同一名称空间中的不同类调用helper函数,无需前缀,并且可以访问System.Web.UI.Page,c#,class,oop,static,namespaces,C#,Class,Oop,Static,Namespaces,我很确定这是一个新手问题,但我对C#比较陌生,在过去的几年里,我还没有对OOP做过太多(太多js)。作为旁注,我正在使用asp.NET web表单页面在.NET Framework 4.8中编写我的项目。 昨天,我有一个梦想,我可以把我所有的通用助手函数复制粘贴到我创建的每个新类中,并将其复制到一个单独的专用助手类中(在同一名称空间中),然后像以前一样从该名称空间中的任何地方调用我的函数(例如,没有前缀和类名,没有实例化等)。这可能吗?^^ 我刚刚阅读了接口,我已经创建了一个静态类,看看这是否可

我很确定这是一个新手问题,但我对C#比较陌生,在过去的几年里,我还没有对OOP做过太多(太多js)。作为旁注,我正在使用asp.NET web表单页面在.NET Framework 4.8中编写我的项目。
昨天,我有一个梦想,我可以把我所有的通用助手函数复制粘贴到我创建的每个新类中,并将其复制到一个单独的专用助手类中(在同一名称空间中),然后像以前一样从该名称空间中的任何地方调用我的函数(例如,没有前缀和类名,没有实例化等)。这可能吗?^^

我刚刚阅读了接口,我已经创建了一个静态类,看看这是否可行——但尽管我不再需要实例化该静态类,但我仍然需要引用helper类,然后才能使用它的任何一个(也是静态的)函数。此外,我无法从该静态类访问请求对象或asp表单元素,因为我似乎无法让它实现System.Web.UI.Page。我做错了什么?

您可以用它来实现。根据您可能希望使用的方法,它们实际上不是“静态助手”但是还有扩展页面功能,因此,您应该编写从页面派生的公共基类…您也可以编写扩展方法…但是在类内部使用扩展方法,它扩展需要使用
这个。
@Selvin谢谢,我刚刚阅读了继承,现在我有了一个公共基类,其中包含从rom System.Web.UI.Page,我的其他类将继承它。但我仍然无法访问页面上的任何asp.net元素。有没有办法让我的助手函数访问页面上的asp.net文本,而无需将其作为参数传递给需要它的函数?因为它们仅存在于派生类中…它也是真实的y取决于上下文另一个离题评论:请,不要为自己和世界做这件事…只是不要…旧的ASP.NET又名WebForms是坏的,太坏了,以至于每次你使用它,小猫都会死…在ASP.NET核心中使用一些更新的框架,比如MVC