封装有简单的困难

时间:2013-08-16 20:06:29

标签: c# encapsulation public abstraction

我是编程的新手,我正在创建这个脚本,它创建了一个根据您的输入读取XML文件的函数,我刚刚遇到了这个问题,虽然我无法访问名为“ XMLtext“,它是公开的,有人可以告诉我我做错了什么并解释它,我尝试了各种各样的事情。

using UnityEngine;
using System.Collections.Generic;
using System.Xml.Linq;
using System.Linq;
using System.Collections;

public class Data : MonoBehaviour {
    public TextAsset XMLtext;

    void Main () {

    }

    public static string XMLread (params string[] no) {
        var XMLfile = XDocument.Parse ();
        var a = Data.XMLfile.Element ("data");

        for (int i = 0; no[i] == null; i++) {

        }
    }
}

2 个答案:

答案 0 :(得分:0)

问题是拥有XMLtext字段的类Data是一个实例类。您的方法XMLread是静态的,这意味着它在所有Data实例中共享。要解决您的问题,请将XMLText设为静态,或者通过删除static关键字使XMlread成为实例方法。

答案 1 :(得分:0)

问题是,您的XMLtext字段属于Data的实例,而您的XMLread方法属于static,因此它属于类Data }。您可能只想从static中移除XMLread,以便始终处于Data的实例中。