在New语句之后调用实例方法内联

时间:2014-01-06 15:46:21

标签: vb.net

如何将此代码转换为VB.net

public void SetBooks(IEnumerable<Book> books)
    {
        if (books == null)
            throw new ArgumentNullException("books");

        new System.Xml.Linq.XDocument(books).Save(_filename);
    }
http://converter.telerik.com/

说:

Public Sub SetBooks(books As IEnumerable(Of Book))
        If books Is Nothing Then
            Throw New ArgumentNullException("books")
        End If
        New System.Xml.Linq.XDocument(books).Save(_filename)
End Sub

但是Visual studio说“语法错误。”因为“新”

这种情况的关键字是什么,我在 Google 上搜索但没有结果。

2 个答案:

答案 0 :(得分:6)

实际上,您可以使用Call关键字

在一行中执行此操作
Call (New System.Xml.Linq.XDocument(books)).Save(_filename)

答案 1 :(得分:3)

您无法初始化对象并在VB.NET中的一个语句中使用它(而不是C#)。你需要两个:

Dim doc = New System.Xml.Linq.XDocument(books)
doc.Save(_filename)

在C#构造函数returns the instance of the created object中,在VB.NET中没有。