C# 如何在VB.NET中实例化对象而不存储到变量?
我想创建一个对象的实例并执行该对象的方法,但不想执行将该实例存储在声明变量中的额外步骤 例如,假设我有一个简单的加法器类:C# 如何在VB.NET中实例化对象而不存储到变量?,c#,vb.net,C#,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
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”方法,返回该类的新实例,但我想知道是否有一个VB.NET等效于C#中可能的方法。尝试以下方法:
Dim rslt As Integer = New Adder(1, 2).getSum()
您是否尝试将Dim结果设置为Int32=(新的加法器(1,2)).getSum()?(这就是你在c#示例中所做的)啊,是的,你是对的。我遇到了这个问题,并基于非返回对象方法(sub)进行了一些初始测试。我认为,因为不返回的案例不起作用,返回的案例也不会起作用。New MyObject().DoSomethingWithReturn()不起作用,但Dim rslt=New MyObject().DoSomethingWithReturn()起作用。