想在vb.net里面定義一個二維陣列,元素為函式地址,主要實作
點擊單選按鈕可以呼叫單選按鈕值對應下標的函式
類似如下代碼定義(以前是delphi寫的,現在想轉到vb.net)
procedure initfunctionarray(); //函式陣列初始化
begin
setlength(functionarray,3);
setlength(functionarray[0],12);
setlength(functionarray[1],5);
setlength(functionarray[2],15);
functionarray[0,0]:=GetDocTitle;
functionarray[0,1]:=GetDocTopic;
functionarray[0,2]:=GetDocKeywords;
functionarray[0,3]:=GetDocRemark;
functionarray[0,4]:=GetPageWidth;
functionarray[0,5]:=GetPageHeight;
functionarray[0,6]:=GetPageLeftMargin;
functionarray[0,7]:=GetPageRightMargin;
functionarray[0,8]:=GetPageTopMargin;
functionarray[0,9]:=GetPageBottomMargin;
functionarray[0,10]:=GetPageHeader;
functionarray[0,11]:=GetPageFooter;
functionarray[1,0]:=GetParaghLeft;
functionarray[1,1]:=GetParaghRight;
functionarray[1,2]:=GetParaghAbove;
functionarray[1,3]:=GetParaghbelow;
functionarray[1,4]:=GetParaghLineSpace;
functionarray[2,0]:=GetTextFontName;
functionarray[2,1]:=GetTextFontSize;
functionarray[2,2]:=GetTextChineseFontName;
functionarray[2,3]:=GetTextChineseFontSize;
functionarray[2,4]:=GetTextFontColor;
functionarray[2,5]:=GetTextFontBackColor;
functionarray[2,6]:=GetTextFontWeight;
functionarray[2,7]:=GetTextFontPosture;
functionarray[2,8]:=GetTextFontUnderLine;
functionarray[2,9]:=GetTextCrossedOut;
functionarray[2,10]:=GetTextFontShadow;
uj5u.com熱心網友回復:
你沒有宣告你的各個“函式”的輸入輸出統一型別定義,這樣的標題黨可能會對設計產生混淆。簡單粗劣的設計可以這樣:Sub test()
Dim a As New List(Of Func(Of Object))
a.Add(Function()
Return Me.abc() * 10
End Function)
End Sub
Function abc() As Integer
Return 1
End Function
uj5u.com熱心網友回復:
當然如果宣告為陣列就是Sub test()
Dim a(10, 10) As Func(Of Object)
a(0, 1) = Function()
Return Me.abc() * 10
End Function
End Sub
Function abc() As Integer
Return 1
End Function
這里因為你沒有說明輸入輸出模式,這里假設定義為無輸入引數的 Function,實際上可以在函式體中隨意寫復雜代碼,而假設輸出都是僅僅是一個 Object 型別物件。
uj5u.com熱心網友回復:
vb.net有委托,傳入addressof 函式名即可。uj5u.com熱心網友回復:
可以申明相應的delegate來參考具體的method,這樣就可以通過delete來回呼其中的method了。uj5u.com熱心網友回復:
您好!不好意思我沒有說明清楚,不是一個引數,是多個引數函式結構如下,統一了引數樣式和個數,想實作如圖,點擊單選鈕就呼叫對應下標的陣列函式

Public Function GetDocTitle(sectionindex As Integer, PageIndex As Integer, ParaghIndex As Integer, StyleName As String, SearchText As String) As String
Dim result As String
Try
result = Me.GetDocProperty().Title
Catch e As Exception
Finally
GetDocTitle = result
End Try
End Function
Public Function GetDocSubject(sectionindex As Integer, PageIndex As Integer, ParaghIndex As Integer, StyleName As String, SearchText As String) As String
Dim result As String
Try
result = Me.GetDocProperty().Subject
Catch e As Exception
Finally
GetDocSubject = result
End Try
End Function
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/159886.html
標籤:VB.NET
下一篇:C#中,如何調節螢屏亮度?
