C#调用另一个类对象内的类对象的方法

时间:2015-04-11 03:56:36

标签: c# object methods

我是C#的新手,无法调用另一个类对象中的类对象的方法。我收到一条错误,说“MainWindow.Mascot.MyNameIs()”由于其保护级别而无法访问。但是,所有课程都是公开的。如何从另一个对象内部调用对象的类方法?

谢谢!

以下是代码的一部分:

public partial class MainWindow : Window
{
    public class Mascot
    {
        string name;

        string MyNameIs()
        {
            return name;
        }
    }

    public class School
    {
        public Mascot myMascot;
    }

    public MainWindow()
    {
        InitializeComponent();
        School Houston = new School();
        Houston.myMascot = new Mascot();
        Houston.myMascot.MyNameIs();
    }
}

2 个答案:

答案 0 :(得分:0)

  1. 公共课并不意味着班级成员是公开的;它是另一个范围。 您必须附加MyNameIs函数的公共前端。
  2. 试试这个。

    public partial class MainWindow : Window
    {
        public class Mascot
        {
            string name;
    
            public string MyNameIs() // changed
            {
                return name;
            }
        }
    
        public class School
        {
            public Mascot myMascot;
        }
    
        public MainWindow()
        {
            InitializeComponent();
            School Houston = new School();
            Houston.myMascot = new Mascot();
            Houston.myMascot.MyNameIs();
        }
    }
    

答案 1 :(得分:0)

方法MyNameIs()的修饰符是私有的,因为你没有定义它。只需添加一个修饰符public,如:

public string MyNameIs()
{
   return name;
}

如果该类未嵌套在另一个类中,则其默认访问修饰符为internal。如果该类嵌套在另一个类中,则默认访问说明符为private

相关问题