C# 如何在C中访问struct内部的函数#

C# 如何在C中访问struct内部的函数#,c#,C#,不能使用实例调用静态方法。您有一个静态方法,所以用struct调用它,而不是用struct实例调用它 class Program { public struct course { public string name; public int elecode; public int credit; public static void getdetails() { Conso

不能使用实例调用静态方法。您有一个静态方法,所以用struct调用它,而不是用struct实例调用它

class Program
{ 
   public  struct course
   {
        public string name;
        public int elecode;
        public int credit;


        public static void getdetails()
        {
            Console.WriteLine("Enter your Name");
           Ele.name = Console.ReadLine();

        }
   }

    static void Main(string[] args)
    {

        course ele;
        ele.getdetails();

    }
}
即使没有 类已创建。静态成员始终由 类名,而不是实例名

阅读更多有关此MSDN文章的静态信息

  • 您的方法
    getdetails
    不应该是静态的
  • 删除
    Ele.
    内部
    getdetails
  • 初始化
    课程要素
    变量
  • 您的代码:

    course.getdetails();
    

    正如@DavidHeffernan在关于糟糕设计的评论中提到的那样,除非您真正理解C#中的
    struct
    class
    之间的区别,否则您必须知道在哪里使用
    class
    而不是
    struct
    来逃避问题,人们通常应该坚持使用
    class
    。我知道这与问题无关,但我仍然建议您通读命名指南,通过方法调用改变结构是糟糕的设计。谢谢,答案中提到了这一点
    class Program
    { 
       public  struct course
       {
            public string name;
            public void getdetails()
            {
                Console.WriteLine("Enter your Name");
                name = Console.ReadLine();
            }
       }
    
        static void Main(string[] args)
        {    
            course ele = new course();
            ele.getdetails();
        }
    }