C# 非静态字段、方法或属性需要对象引用';控制台应用程序
我得到一个错误:C# 非静态字段、方法或属性需要对象引用';控制台应用程序,c#,C#,我得到一个错误: namespace ConsoleApplication { class Program { static void Main() { int val = 10; fnctest(val); Console.WriteLine(val); } void fnctest(int val) {
namespace ConsoleApplication
{
class Program
{
static void Main()
{
int val = 10;
fnctest(val);
Console.WriteLine(val);
}
void fnctest(int val)
{
val = 200;
}
}
}
如何解决此错误?使您的
fnctest
方法或实例化您的类并调用您的方法
An object reference is required for the non-static field, method,
or property 'ConsoleApplication'
或
请阅读声明
fnctest
为静态
像这样
static void Main()
{
int val = 10;
Program p = new Program();
p.fnctest(val);
Console.WriteLine(val);
}
void fnctest(int val)
{
val = 200;
}
顺便说一句(与问题无关):
我想你们是想找出值类型和引用类型之间的区别。
val
方法中的值已更改,然后打印以查看其值是否有任何更改。在这种情况下,您还应该了解out
参数。main方法是静态的,因此您只能从main调用静态方法
此外,如果要更改传递给方法的原始值,则应通过引用传递参数
所以,你的方法应该是
public static void fnctest(int val)
{
val = 200;
}
static void fnctest(ref int val)
{
val = 200;
}
您的方法调用应该是
public static void fnctest(int val)
{
val = 200;
}
static void fnctest(ref int val)
{
val = 200;
}
阅读并理解本文及相关文章