当前位置:  开发笔记 > 编程语言 > 正文

为什么我不能在另一个类中调用公共方法?

如何解决《为什么我不能在另一个类中调用公共方法?》经验,为你挑选了2个好方法。

我有这两个类交互,我试图从第一类调用四个不同的类用于第二类.

这些方法是公共的,它们确实返回值,但由于某种原因,没有建立连接.我尝试的错误是:"An object reference is required for the nonstatic field, method, or property 'GradeBook.[method I want called]'"


我已经初始化了一切.我不想将方法创建为静态.我再次阅读了我的任务细节,我甚至不应该这样,但我似乎无法让这个工作无论如何我都说出来.

myGradeBook.[方法] GraceBook.[方法]

这似乎都会造成错误.

目前的错误:

The best overloaded method match or 'System.Console.WriteLine(string, object)' has some invalid arguments.

Arugment '2': cannot convert from 'method group' to 'object'

我甚至不是那些意味着什么......

编辑:我刚刚修复了这个问题,这要归功于Visual Studio的Step Into功能.我不知道为什么花了这么长时间才使用它.



1> JaredPar..:

您正在尝试在类上调用实例方法.要在类上调用实例方法,必须创建一个用于调用该方法的实例.如果要在非实例上调用该方法,请添加static关键字.例如

class Example {
  public static string NonInstanceMethod() {
    return "static";
  }
  public string InstanceMethod() { 
    return "non-static";
  }
}

static void SomeMethod() {
  Console.WriteLine(Example.NonInstanceMethod());
  Console.WriteLine(Example.InstanceMethod());  // Does not compile
  Example v1 = new Example();
  Console.WriteLine(v1.InstanceMethod());
}


是的,您可以 - 如果要调用实例方法,请在实例上调用它.这是唯一有道理的方法.否则就像要求"狗"跑,而不是要求*特定*狗跑.
"亲爱的,你今天早上有没有遛狗?" /"不,但我已经走了狗的概念."

2> discorax..:

听起来你并没有实例化你的课程.这是我得到"需要对象引用"错误的主要原因.

MyClass myClass = new MyClass();

一旦你添加了那一行,你就可以调用你的方法

myClass.myMethod();

此外,您的所有类都在同一名称空间中吗?当我第一次学习c#时,这对我来说是一个常见的绊脚石.


+1因为它看起来像一个正确的答案.无论是谁投票,我希望他们在这里发表评论.
推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有