Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#调用另一个类对象内部的类对象的方法_C#_Object_Methods - Fatal编程技术网

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

C#调用另一个类对象内部的类对象的方法,c#,object,methods,C#,Object,Methods,我是C#新手,在调用另一个类对象内部的类对象的方法时遇到困难。我收到一个错误,说明“MainWindow.Mascot.MyNameIs()”由于其保护级别而无法访问。然而,所有的课程都是公开的。如何从另一个对象内部调用对象的类方法 谢谢 以下是代码的一部分: public partial class MainWindow : Window { public class Mascot { string name; string MyNameIs(

我是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();
    }
}
  • public类并不意味着该类的成员是public;它即将进入另一个领域。 您必须附加函数MyNameIs的公共前端
  • 试试这个

    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();
        }
    }
    

    方法
    MyNameIs()
    的修饰符是私有的,因为您没有定义它。只需添加访问修饰符
    public
    如下:

    public string MyNameIs()
    {
       return name;
    }
    

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

    非常感谢。这很有道理。谢谢你的帮助。