簡體   English   中英

可公開訪問的功能

[英]Publicly accessible functions

我正在創建一個 httphandler。 文件類型可能無關緊要。

我的.ashx 文件:

<%@ webhandler class="MyHandler" %>
<%@ assembly src="Functions.vb" %>
<%@ assembly src="Classes.vb" %>

Public Class MyHandler
  ...

End Class

我的 Functions.vb 文件:

Module PublicFunctions

Function SayHello(greeting As String)
  ...

End Function
...

End Module

我的 Classes.vb 文件:

Imports This
Imports That
Imports TheOther
...

Enum AnEnum
End Enum
...

Class AClass
End Class
...

在我的類文件中,我希望能夠使用 Functions.vb 中的函數,而無需將它們包裝在 class 中,因此我可以像這樣直接調用它們

SayHello("Hello World")

代替

MyPublicFunctions.SayHello("Hello World")

可能嗎?

這是 object 面向編程的基本思想。 每一個 function,每一位代碼都屬於某個地方,需要組織起來。 一種方法是通過使用對象(類)。 如果你有一個 function 你想預制,簡明 function 正在做什么以及正在使用它,並將其放置在適當的位置。

我還建議不要實現 HttpHandler。 在 Asp.Net 框架中,幾乎所有您希望 web 應用程序執行的操作都已由某個地方處理。 我參與了很多 web 項目,每次我看到有人試圖寫一個,他們總是用另一種(通常是開箱即用的)方式來做。

您可以將“SayHello”轉換為以處理程序類型作為參數類型的擴展方法,但您可能仍需要指定Me.SayHello()

Imports PublicFunctions

有幫助嗎?

編輯- 由於這不起作用,請嘗試將 PublicFunctions 轉換為 class,使其成員共享(以便它們在沒有 class 實例的情況下工作,相當於 c#,並進行靜態導入)。 這對我有用,雖然我不在 ASP 環境中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM