§ ITPOW >> 文档 >> C#

C# 类入口函数

作者:vkvi 来源:ITPOW(原创) 日期:2007-7-11

C# 是完全面向对象的,不存在全局的变量、常量和函数,它们必须位于类中,注意,这里说的是 C#,不是 ASP.NET,也就是说扩展名为 .cs 的文件,而不是扩展名为 .aspx 的文件,尽管 ASP.NET 可以用 C# 作为开发语言。

.cs 即 C# 类文件,(.vb 为 VB 类文件),我们以一个简单的类示例开始 C# 类的讲解。

using System;

/// <summary>
/// Summary description for Class1
/// </summary>
public class Class1
{
    public static void Main()
    {
        //
    }
}

class 为关键字,Class1 为类名称,Main 为入口函数(即将这个文件编译成 exe 文件后,运行程序,立即执行 Main 函数),入口函数规则:

  • 对保护级别没有要求,但一般指定为 public。
  • 必须为静态函数-static。
  • 返回值必须是 void 或 int。
  • 必须是 Main,大小写有误将不能作为入口函数。
  • 函数可以有参数,也可以没有参数,有参数时用 string 数组(string[] args)作参数,表示命令行参数。

 

using System;

/// <summary>
/// Summary description for Class1
/// </summary>
public class Class1
{
    public static void Main()
    {
        Console.WriteLine("Hello World!");
        Class2.Main();
    }
}

public class Class2
{
    public static void Main()
    {
        Console.Write("Class2.Main");
    }
}

Console.WriteLine 表示向控制台输出一行字符串,Console 的名称空间为 System。

在 Class1 的 Main() 中调用了 Class2 的 Main(),由于 Main 是静态函数,我们可以用“类名.函数名”调用。

现在我们要将 cs 文件编译成 exe 文件,相关知识请参见 如何编译运行 C# 程序。这里有两个类,两个入口函数,哪一个有效呢?这就需要借助于 csc 的 /main: 选项了。

csc /target:exe /out:E:\foo.exe /main:Class1 D:\foo.cs

上述编译方法,将 Class1 的 Main() 作为入口,在命令提示符中运行 foo.exe 将显示两行文字:Hello World! 和 Class2.Main。

csc /target:exe /out:E:\foo.exe /main:Class2 D:\foo.cs

上述编译方法,将 Class2 的 Main() 作为入口,在命令提示符中运行 foo.exe 将显示一行文字:Class2.Main。

说明:Main() 入口函数并不是必须的,比如我们要将 C# 代码编译成 DLL 以供 ASP.NET 调用,就不能有 Main()。


 

using System;
 
/// <summary>
/// Summary description for Class1
/// </summary>
public class Class1
{
    public static void Main(string[] args)
    {
        Console.WriteLine(args[0]);
    }
}

以上代码,我们将输出第一个参数,根据上述程序,如果不存在参数时,将发生程序错误,调用示例:

E:\>foo arg
相关文章