结构C#中的托管指针



我正在尝试编写一个通用函数,该功能应该能够解析XML文件

这是代码

    public struct XmlArg
    {
        public string Name;
        public Type T;
        public object Value;
    };
    static bool ParseXmlArgs(XmlReader xml, params XmlArg[] args)
    {
        for (int i = 0; i < args.Length; ++i)
        {
            if (xml.MoveToContent() != XmlNodeType.Element || xml.Name != args[i].Name)
            {
                return false;
            }
            args[i].Value = xml.ReadElementContentAs(args[i].T, null);
        }
        return true;
    }
    static void Main(string[] args)
    {
        int a = 0;
        ParseXmlArgs(
            XmlTextReader.Create("C:\Users\Yazilim\Desktop\XML.xml"),
            new XmlArg[]{
                new XmlArg() { Name = "ErrorCode", T = typeof(int), Value = a}});
    }

我知道我应该将A的指针传递给值(当然应该是其他类型的类型)

,但我不希望它是非管理的方式。

是否有任何托管方法在结构中使用变量的指针?

(函数可能是错误的或不正确的,这不是要点)

假设您希望 XmlArg.Value to point to a,而不仅仅是克隆其值,那么答案只是"您不能"。C#中没有运营商的地址,这是有充分理由的,因此,因为您可以在堆栈上创建一个变量(例如A IS)。当您用完范围时,该变量包含垃圾,然后包含Zonk。

检查一下:c#中的struct指针初始化。

另外,从微软文档中有关结构:结构也可以包含构造函数,常数,字段,方法,属性,索引,索引,操作员,事件和嵌套类型,尽管需要几个这样的成员代替课。

希望有帮助!

相关内容

  • 没有找到相关文章

最新更新