0

我正在编写一个 XML Writer 并拥有它以便它可以编写这个......

<?xml version="1.0" encoding="utf-8"?>
<mappings>
    <entry name="Iasanator">
        <item code="Red">He Needs Help</item>
    </entry>
</mappings>

...但是我需要能够将不同数量的id="whatever"语句传递到 XMLWriter.WriteHeader( # of these needs to scale ) 子中。

<header id="whatever" href="this" code="that" name="and so on".......>

由于重载潜艇,我最多可以放两个,但是我如何在不为每种可能的情况编写单独的重载潜艇的情况下放入... 15 或其他东西?

编辑:Nkvu,我自己解决了这个问题,然后读到你有类似的想法。英雄所见略同。我使用了一种类型的数组,就像你建议的那样,除了我使用了一个字典列表,其中“参数 = 新字典(字符串,字符串)”。

整个 XML Writer 可以在以下位置找到: http: //pastebin.com/03TuX0Pd

如果您发现其中一些令人困惑,(我不是最擅长评论的东西)请随时发表评论并提出问题。我很乐意回答。

4

1 回答 1

1

您能否发布到目前为止的 VB.NET 代码?

总的来说,我可以想到两种选择:

具有可变数量参数的成员

您可能想要这样的东西您将可变数量的参数传递给您的子程序,然后迭代它们并决定如何处理它。

每个参数可以是您的标头 ID(如果它是字符串或某种基本类型,如整数),或者您可以传入类/复杂类型(例如,您可以有一个Header具有 ID、href、代码、名称属性的类ETC)。

对于复杂类型,您的签名将类似于:

Public Sub DoStuff(ParamArray list() as HeaderClass) 

你会称它类似于:

DoStuff(headerObj1, headerObj2, headerObj3)

其中 headerObj1 等是您之前创建的对象

传入一个数组/列表/集合

您也可以只形成一个列表或其他集合类型并将其传递给您的子。

所以你的子签名看起来像:

Public Sub DoStuff(headers as List(of HeaderClass)) 

你会称它类似于:

Dim headerList As List(Of HeaderClass) = New List(Of HeaderClass)
headerList.Add(headerObj1)
headerList.Add(headerObj2)
headerList.Add(headerObj3)

DoStuff(headerList)

然后你的 sub 可以遍历列表并做需要做的事情。

于 2013-08-13T15:41:47.307 回答