C# 关于去掉 Static 还能运行

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Main;

namespace ConsoleApplication7
{
class Program
{
int i = 20;

static void Main(string[] args)
{
Program j = new Program();
Console.WriteLine("i的值" + j.i);
Console.Read();
}
public static void Main()
{
int j = 30;
Console.WriteLine(j);
Console.WriteLine(Program.j);
}
}

}

上面报错是:
错误 1 命名空间“System”中不存在类型或命名空间名称“Main”。是否缺少程序集引用? c:\users\administrator\documents\visual studio 2010\Projects\ConsoleApplication7\ConsoleApplication7\Program.cs 5 14 ConsoleApplication7
按下面说得做, 结果是出现20, 单如果让20 和30一起出现 该怎么弄

class Program
{
int i = 20;
int j = 30;
static void Main(string[] args)
{
A();

}
public static void A()
{
Program k = new Program();
Console.WriteLine("i的值" + k.i);
Console.WriteLine("j的值" + k.j);
Console.Read();

}
}

static是静态方法去不去,无所谓,不去你可以直接A()这样调用,去了你需要实例化以后在用。
第一个MAIN方法是控制台的主函数方法,跟WEB里的PAGELOAD事件一样,不能去掉。
至于你出不来30是因为你的主函数没调用下面哪个MAIN方法,下面的方法是不会自己执行的,需要在主函数里调用才可以。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-02-22
1.去除 using System.Main;
2.改Console.WriteLine("i的值" + j.i.ToString());
3.Console.WriteLine(Program.j);错误 ,删除..Program 没有 J.追问

又出现这种情况
错误1程序“c:\users\administrator\documents\visual studio 2010\Projects\ConsoleApplication7\ConsoleApplication7\obj\x86\Debug\ConsoleApplication7.exe”定义了不止一个入口点:“ConsoleApplication7.Program.Main(string[])”。请使用 /main 进行编译,以指定包含入口点的类型。

追答

把第二个 MAIN 函数删掉..
或者 改个名字.

追问

能显示出来20, 但是30显示不出来

第2个回答  2012-02-23
Console.writeLine(New Program().i);
这个输出20
Console.writeLine(Program.Main());这个可以输出你想要的30追问

要20 和30 同时都能显示出来啊

第3个回答  2012-02-25
C#程序中只能有一个入口点,每新建一个项目,程序都会自动生成一个Main方法。
Main方法在类或结构中声明。它必须为静态方法,而且不应该为公共方法。
相似回答