我怎样才能将此代码转换为VB.net
public void SetBooks(IEnumerable<Book> books)
{
if (books == null)
throw new ArgumentNullException("books");
new System.Xml.Linq.XDocument(books).Save(_filename);
}
Run Code Online (Sandbox Code Playgroud)
在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
Run Code Online (Sandbox Code Playgroud)
但是visual studio说"语法错误".因为"新"
这种情况的关键字是什么,我在Google上搜索但没有结果.
小智 8
实际上,您可以使用Call关键字在一行中完成
Call (New System.Xml.Linq.XDocument(books)).Save(_filename)
Run Code Online (Sandbox Code Playgroud)
您无法初始化一个对象并在 VB.NET 中的一个语句中使用它(与 C# 不同)。你需要两个:
Dim doc = New System.Xml.Linq.XDocument(books)
doc.Save(_filename)
Run Code Online (Sandbox Code Playgroud)
在 C# 中,构造函数返回所创建对象的实例,而在 VB.NET 中则不然。