我有这两个类交互,我试图从第一类调用四个不同的类用于第二类.
这些方法是公共的,它们确实返回值,但由于某种原因,没有建立连接.我尝试的错误是:"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'
Run Code Online (Sandbox Code Playgroud)
我甚至不是那些意味着什么......
编辑:我刚刚修复了这个问题,这要归功于Visual Studio的Step Into功能.我不知道为什么花了这么长时间才使用它.
Jar*_*Par 39
您正在尝试在类上调用实例方法.要在类上调用实例方法,必须创建一个用于调用该方法的实例.如果要在非实例上调用该方法,请添加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());
}
Run Code Online (Sandbox Code Playgroud)
dis*_*rax 12
听起来你并没有实例化你的课程.这是我得到"需要对象引用"错误的主要原因.
MyClass myClass = new MyClass();
Run Code Online (Sandbox Code Playgroud)
一旦你添加了那一行,你就可以调用你的方法
myClass.myMethod();
Run Code Online (Sandbox Code Playgroud)
此外,您的所有类都在同一名称空间中吗?当我第一次学习c#时,这对我来说是一个常见的绊脚石.
您必须创建一个类类型的变量,并首先将其设置为等于该对象的新实例。
GradeBook myGradeBook = new GradeBook();
Run Code Online (Sandbox Code Playgroud)
然后调用您刚刚创建的对象上的方法。
myGradeBook.[method you want called]
Run Code Online (Sandbox Code Playgroud)