Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 代码赢得';t返回值?_C# - Fatal编程技术网

C# 代码赢得';t返回值?

C# 代码赢得';t返回值?,c#,C#,(我对编程和本网站都是初学者。提前:如果我以错误的方式使用本网站,我会道歉。) 我正在尝试将以下代码用于mandelbrot程序。我需要程序返回“n”,但调试时,我收到一条错误消息,说明程序没有合适的静态main方法: 错误1程序'c:\Users\Alain\Documents\Visual Studio 2013\Projects\Mandelbrot\Project1\Project1\obj\Debug\Project1.exe' 不包含适用于条目的静态“Main”方法 C点:\User

(我对编程和本网站都是初学者。提前:如果我以错误的方式使用本网站,我会道歉。)

我正在尝试将以下代码用于mandelbrot程序。我需要程序返回“n”,但调试时,我收到一条错误消息,说明程序没有合适的静态main方法:

错误1程序'c:\Users\Alain\Documents\Visual Studio 2013\Projects\Mandelbrot\Project1\Project1\obj\Debug\Project1.exe' 不包含适用于条目的静态“Main”方法 C点:\Users\Alain\Documents\visualstudio 2013\Projects\Mandelbrot\Project1\Project1\CSC Project1

虽然我可以清楚地看到代码中有一个“main”方法。 有人知道问题出在哪里吗

我的代码(C#):

使用系统;
命名空间Windows窗体应用程序1
{
公共类公式
{
公共静态int main()
{
double f=新的double();
double x=新的double();
双y=新的双();
双a=新的双();
双b=新的双();
int n=新的int();
double max=新的double();
double schaal=新的double();
double afstand=新的double();
x=0.5;
y=0.8;
n=0;
a=0;
b=0;
//最大值=发票3
//schaal=发票4
afstand=0;

虽然(afstand您的问题是
main()
需要是
main()
。错误消息(您只是在后面添加到问题中)在这一点上非常清楚-当编译器给您一个错误或警告时,它是有原因的,您应该仔细阅读

由于我已经在另一个答案中添加了这一注释,下面是如何在C#程序中声明
Main()
:如果您遵循那篇顶级文章中的链接,您可以找到编译器将接受的各种可选
Main
声明

作为对代码的注释(与问题没有严格的关系):您不需要编写
double f=new double();
,然后分别赋值(尽管您可以)。您只需编写:

double f = 0;

double
int
是值类型,声明值类型会隐式创建实例。在读取它们之前,您仍然必须为它们指定某种值(否则编译器会抱怨尝试使用未初始化的变量).

C#计划主要入口点的签名必须是:

static void Main(string[] args)
{
}
检查:

  • Main在类或结构中声明。Main必须是静态的,并且不应是公共的。(在前面的示例中,它接收private的默认访问权限。)封闭的类或结构不要求是静态的
  • Main可以具有void或int返回类型
  • Main方法可以使用字符串[]声明,也可以不使用字符串[]声明使用命令行参数的参数。当使用VisualStudio创建Windows窗体应用程序时,可以手动添加参数,或者使用环境类获取命令行参数。参数被读取为零索引命令行参数。不像C和C++,程序的名称不被视为第一个。命令行参数
C#区分大小写,所以您必须始终注意大小写

Main
Main
是两种不同的方法

C需要
Main()
作为其入口点。
Main()
只是另一种方法

顺便说一句,这是C#编译器的选择,而不是.NET。低级汇编代码使用.entrypoint指令定义它

 .method public static void Main() cil managed {
   .entrypoint
如果您使用MSIL编写自己的.NET程序集,您可以决定使用main或foo作为“main”程序

另一个有趣的警告是,您实际上可以返回一个在Main()中使用的值。监视Main()调用本身。现在我不建议这样做,但它表明Main只是另一个函数,尽管它将registerd作为模块的入口点

  static int Main(string[] args)
  {
        if (args.Length == 0)
        {
              args = new[] {"foo"};
              Main(args); // recursively call Main()
              Console.WriteLine("2nd Main executed");
              return -1; // Parent main returns
        }

        // Child Main() finishes the work
        Console.WriteLine("Main finished");

        return 0;
  }
  static int Main(string[] args)
  {
        if (args.Length == 0)
        {
              args = new[] {"foo"};
              Main(args); // recursively call Main()
              Console.WriteLine("2nd Main executed");
              return -1; // Parent main returns
        }

        // Child Main() finishes the work
        Console.WriteLine("Main finished");

        return 0;
  }