Lập trình với C#: Chương 2 (Phần XI)

Phương thức Main()

Đa phương thức Main()

Khi một C# console hoặc ứng dụng Windows được biên dịch, theo mặc định trình biên dịch nhìn vào phương thức Main() thoả đúng như danh sách dưới đây, và tạo ra phương thức lớp trỏ toàn bộ chương trình, Nếu có nhiều hơn một phương thức Main() , trình biên dịch sẽ trả về thông báo lỗi do đó Mội chương trình C# phải chứa một hàm main(), được xem là điểm đột nhập vào chương trình Thí dụ, Chương trình đã gọi đoạn code sau MainExample.cs:

using System;

namespace Wrox.ProCSharp.Basics
{
      class Client
      {
            public static int Main()
            {
                 MathExample.Main();
                 return 0;
            }
      }

      class MathExample
      {
           static int Add(int x, int y)
           {
                return x + y;
           }

           public static int Main() 
           {
                int i = Add(5,10);
                Console.WriteLine(i); 
               return 0;
            } 
       }
}

Đây chứa hai lớp cả hai đều có hàm main() do đó khi biên dịch chương trình sẽ báo lỗi :

csc MainExample.cs
Microsoft (R) Visual C# .NET Compiler version 7.00.9466
for Microsoft (R) .NET Framework version 1.0.3705
Copyright (C) Microsoft Corporation 2001. All rights reserved.

MainExample.cs(7,25): error CS0017: Program ‘MainExample.exe’ has more than one entry point defined: ‘Wrox.ProCSharp.Basics.Client.Main()’
MainExample.cs(21,25): error CS0017: Program ‘MainExample.exe’ has more than one entry point defined: ‘Wrox.ProCSharp.Basics.MathExample.Main()’

Khai báo hàm main() nhận thông số (Passing Arguments to Main())

Chương trình ArgsExample.cs, truyền một chuỗi ký tự vào hàm main() và viết các ký tự ra màn hình .

using System;

namespace Wrox.ProCSharp.Basics
{
     class ArgsExample 
     {
          public static int Main(string[] args)
          { 
               for (int i = 0; i < args.Length; i++)
              {
                    Console.WriteLine(args[i]);
              }
              return 0;
           }
      }
}

Chạy chương trình bạn nhớ nhập thêm thông số, Bạn nên chạy bằng công cụ hỗ trợ của .NET
kết quả như sau:

ArgsExample /a /b /c
/a
/b
/c