可能有时候会遇到这样的情况,vs 报错 “不包含适合于入口点的静态“Main”方法 ”,下面给出我总结的解决方法:

1、声明不对

可能用了public、private声明,正确的应该如下:

	static void Main()
        {
            new Program().run();//静态方法可以直接调用(static void run()),非静态方法需要先实例化。
        }


public(共有的) 声明的方法和属性,可以被外部调用(内部、外部自然是相对于类来说的),

private(私有的) 声明的方法和属性,只能在本类中被调用,外部看不到,

static(静态的) 声明的方法和属性,不需要实例化就能被调用(也有公有和私有之分 :public/private static void 方法名)。

下面的几个例子可以简单的说明(例子源于网上摘录):

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

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            test test1 = new test();//实例化		
            test1.dis1();
            test1.dis2();
            Console.ReadKey();
        }
    }
    class test
    {
        public void dis1()//公共方法
        {
            Console.Write("1\r\n");
        }
        public void dis2()//公共方法
        {
            Console.Write("2\r\n");
            dis3();//内部类可以调用内部的私有方法
        }
        private void dis3()//私有方法
        {
            Console.Write("3\r\n");
        }
    }
}

2、引用方法方式不对

就向上面的代码中写的,要注意你所引用的方法是不是在你所能引用的范围内(同一个类下公有、私有都可以,不在同一类下可用公有),再就是要注意引用非静态方法时要实例化。


3、项目属性改变

例如:项目里App.xaml 这个文件的属性被改变成Page,把App.xaml文件Page属性修改为ApplicationDefinition就可以正常编译了。




基本上遇见的也就这几种了,希望有用!

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐