【问题标题】:Pass and return ID to method将 ID 传递并返回给方法
【发布时间】:2020-12-30 15:16:05
【问题描述】:

我需要通过它生成具有唯一 HEX ID 的 xml 文件。为此我使用了简单的方法

public string CalcXML_ID()
        {
            string Return_ID;

            cl_XML_ID = cl_XML_ID + 1;
            Return_ID = cl_XML_ID.ToString("X");

            return Return_ID;
        }

在我的 main 中,我将其称为 CalcXML_ID 三次(我得到 ID 的 1、2 和 3)。然后我从另一个类调用 xmlElement 方法,它也需要有这个唯一 ID X 次。之后,我再次调用我的 CalcXML_ID 方法两次。 我的问题是如何将 ID 传递给 xmlElement 方法并取回上次使用的 ID,以便我可以从那里继续使用 ID 剩余的 2 次。 仅供参考 xmlElement 按其命名返回 xmlElement。
为了简单起见,我有这个 xml 文档和带有 ID 的节点:

XmlDocument doc = new XmlDocument();
XmlElement SW_Blocks_FCNode = doc.CreateElement("SW.Blocks.FB");
SW_Blocks_FCNode.SetAttribute("ID", CalcXML_ID()); //ID return value of 1 here

//ObjectList
XmlNode ObjectListNode = doc.CreateElement("ObjectList");
SW_Blocks_FCNode.AppendChild(ObjectListNode);

然后我调用其他类的方法并将我的 ID 传递给它

XmlElement MultilingualTextNode = XML_MultilingualText(doc, "Comment", "", CalcXML_ID()); // The ID used twice inside this method so it should be 2 and 3
ObjectListNode.AppendChild(MultilingualTextNode);

之后我有以下内容:

XmlElement CompileUnitNode = doc.CreateElement("CompileUnit");
        CompileUnitNode.SetAttribute("ID", CalcXML_ID()); //The ID here has to continue and it should be 4

然后我继续我的代码。问题是 ID 在生成的文件中没有继续存在。

【问题讨论】:

    标签: c# methods uniqueidentifier


    【解决方案1】:

    为此,cl_XML_ID 需要是静态的,你需要有这样的东西:

    public static SomeStaticClass
    {
         public static int cl_XML_ID = 0; 
    
         public static string CalcXML_ID()
            {
                string Return_ID;
    
                cl_XML_ID = cl_XML_ID + 1;
                Return_ID = cl_XML_ID.ToString("X");
    
                return Return_ID;
            }
    
    }
    

    现在,无论您从哪里调用该方法,它都会继续增加cl_XML_ID,而不是之前的数字。

    【讨论】:

    • 谢谢。我编辑了问题以使其更清楚。这对我不起作用
    猜你喜欢
    • 2015-09-27
    • 1970-01-01
    • 2010-11-03
    • 1970-01-01
    • 2015-03-04
    • 2014-07-27
    • 2019-11-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多