2013-10-10 114 views
2

我想創建一個對象的實例並執行該對象的一個​​方法,但不會經歷將該實例存儲在一個聲明的變量中的額外步驟。如何在不存儲變量的情況下實例化VB.NET中的對象?

例如,假設我有一個簡單加法器類:

public class Adder 
{ 
    private int m_int1; 
    private int m_int2; 
    public Adder(int int1, int int2) 
    { 
     this.m_int1 = int1; 
     this.m_int2 = int2; 
    } 
    public int getSum() 
    { 
     return m_int1 + m_int2; 
    } 
} 

我當然可以在變量創建一個實例,存儲和使用它:

Adder a = new Adder(1, 2); 
int rslt = a.getSum(); 
// rslt = 3 

然而,在C# ,我可以跳過變量存儲步驟,只需調用實例化結果的方法:

int rslt = new Adder(1, 2).getSum(); 
// rslt = 3 

我可以然而,在VB.NET中似乎沒有這樣做。類似聲明:

New Adder(1, 2) 

被認爲是語法錯誤,除非結果存儲在變量中。

解決方法是在類中創建靜態「Create」方法,該方法返回該類的新實例,但我想知道是否存在與C#中可能的VB.NET等價的內容。

+2

你嘗試昏暗的結果的Int32 =(新加法器(1,2))getSum()? (這是你在你的C#例子中做的) –

回答

8

試試這個:

Dim rslt As Integer = New Adder(1, 2).getSum() 
+0

啊,是的,你是對的。我遇到了這個問題,並根據非返回對象方法(sub)完成了一些初始測試。我曾假設因爲不返回的情況不起作用,返回的情況也不會。 New MyObject()。DoSomethingNoReturn()不起作用,但Dim rslt = New MyObject()。DoSomethingWithReturn()。 – user2868053

相關問題