RSS

Category Archives: C# Căn Bản

Mảng trong C#

1. Giới thiệu về mảng trong C#

– Trong chương trình đôi khi chúng ta cần thực hiện lưu trữ một loạt các thông tin có cùng kiểu dữ liệu để làm điều này thường chúng ta sẽ phải khai báo rất nhiều biến tương ứng với mỗi một thông tin như vậy. Việc quản lý số lượng lớn các biến gây ra rất nhiều khó khăn. Để giải quyết các khó khăn này thì C# cũng như các ngôn ngữ lập trình khác cung cấp một kiểu cấu trúc dữ liệu cho phép quản lý các biến có cùng tên, cùng kiểu dữ liệu. Đó là mảng.

– Mảng là một tập hợp hữu hạn các phần tử có cùng kiểu dữ liệu. Có thể coi mảng là một cách quản lý danh sách các biến có cùng kiểu dữ liệu.

– Để khai báo mảng trong C# chúng ta sử dụng cú pháp:

[Kiểu dữ liệu] [ ] … [ ] [tên mảng];

Trong đó:

  • [Kiểu dữ liệu]: là bất kì một kiểu dữ liệu nào được hỗ trợ trong C#.
  • [Tên mảng]: là một định danh để phân biệt các mảng với các biến, các đối tượng khác.

Số lượng các cặp dấu [ ] : chỉ ra chiều của mảng.

  • Nếu có 1 dấu [ ] thì mảng là mảng 1 chiều [].
  • Nếu có 2 dấu [ ] thì mảng là mảng 2 chiều [][].
  • Nếu có 3 dấu [ ] thì mảng là mảng 3 chiều [][][].
  • ……………….
  • Nếu có n dấu [ ] thì mảng là mảng n chiều. [][]….[].

Ví dụ: Khai báo mảng 1 chiều lưu trữ phần tử nguyên có tên là x. int[] x;

– Khởi tạo mảng: là quá trình khai báo số lượng các phần tử của mảng và gán giá trị cho các phần tử đó. Để khởi tạo mảng trong C# chúng ta có các cách như sau:

Khai báo và chỉ ra số phần tử của mảng.

[Kiểu dữ liệu] [ ] [tên mảng] = new [Kiểu dữ liệu] [số lượng phần tử];
Ví dụ: khai báo một mảng số nguyên lưu trữ 20 phần tử.
int[] x = new int[20];

Khai báo sau đó mới khởi tạo số phần tử của mảng.

[Kiểu dữ liệu] [ ] [tên mảng];
[tên mảng] = new [kiểu dữ liệu] [số phần tử];

Ví dụ: khai báo một mảng số nguyên lưu trữ 20 phần tử.
int[] x;
x = new int[20];

Khai báo, chỉ ra số lượng các phần tử mảng và gán các giá trị ban đầu cho các phần tử mảng.

int[] x = new int[5] { 5, -7, 8, 1, 9 };

Khai báo, ko chỉ ra số lượng các phần tử mảng và gán giá trị cho các phần tử của mảng.

– Truy cập các phần tử mảng: một mảng là một danh sách các phần tử có cùng kiểu dữ liệu, các phần tử đó được đánh số thứ tự bắt đầu từ 0 đến n-1 (Trong đó n là số phần tử của mảng).

– Như vậy để truy cập đến 1 phần tử của mảng thì chúng ta sử dụng một số nguyên để chỉ ra số thứ tự của phần tử đó trong mảng, phần tử nguyên này được gọi là chỉ số (index).

– Cú pháp tổng quát để truy cập đến phần tử thứ i của mảng là: [tên mảng] [i-1];

Ví dụ : gán giá trị -9 cho phần tử thứ 3 của mảng : x[2] = -9;

– Duyệt qua các phần tử mảng. Kể từ khi mảng là một tập hợp các hữu hạn phần tử do đó để duyệt qua các phần tử mảng thường chúng ta sử dụng vòng lặp for.

Ví dụ: in danh sách các phần tử mảng x ở trên.
Console.WriteLine("Danh sach cac phan tu trong mang:");
for (int i = 0; i < 5; i++)
Console.Write(x[i] + "\t");

2. Các kiểu mảng trong C#

Có 3 kiểu mảng trong C#:

– Mảng 1 chiều (single-dimension array): mảng 1 chiều là một mảng các phần tử. Mảng 1 chiều được khai báo chỉ bao gồm 1 cặp dấu [ ].

– Mảng nhiều chiều (multi-dimension array): mảng nhiều chiều là mảng có số chiều từ 2 trở lên (có từ 2 cặp [ ] trở lên).

– Mảng nhọn (jagged array): mảng nhọn là một mảng của các mảng, trong đó kích thước của mỗi một mảng có thể khác nhau. Mảng nhọn cho phép chúng ta sử dụng bộ nhớ một cách tiết kiệm hơn.

 

Nguồn: vi-infotech.com

 
2 phản hồi

Posted by trên 12/22/2012 in .NET, C# Căn Bản, PCS, SEM 2

 

Kế thừa trong C#

1. Khái niệm Kế thừa

– Kế thừa là khả năng cho phép định nghĩa một lớp mới kế thừa từ lớp cha

– Sau đó sẽ xây dựng thêm các phương thức và thuộc tính riêng của lớp đó

– Lớp cha trong sự thừa kế gọi là lớp cơ sở

– Lớp con trong sự thừa kế gọi là lớp dẫn xuất

– Quan hệ “là 1″: Kế thừa được sử dụng thông dụng nhất để biểu diễn quan hệ “là 1″

Ví dụ: Sinh viên là một con người

Tam giác là một đa giác

– Kế thừa thường được dùng theo 2 cách:

  • Để phản ánh mối quan hệ giữa các lớp
  • Để phản ánh sự chia sẻ mã nguồn giữa các lớp

2. Cú pháp

Cú pháp định nghĩa lớp dẫn xuất

class [Tên lớp con] : [Tên lớp cha]
{
}

3. Thừa kế phương thức

3.1. Phương thức tạo lập (Constructor)

– Vì lớp dẫn xuất không thể kế thừa phương thức tạo lập của lớp cơ sở nên một lớp dẫn xuất phải thực thi phương thức tạo lập riêng của mình

– Nếu lớp cơ sở có một phương thức tạo lập mặc định thì phương thức tạo lập của lớp dẫn xuất được định nghĩa như cách thông thường

– Nếu lớp cơ sở có phương thức tạo lập có tham  số thì lớp dẫn xuất phải định nghĩa phương thức  tạo lập có tham số theo cú pháp sau:

TênLớpCon(ThamSốLớpCon):base(ThamSốLớpCha)
{
// Khởi tạo giá trị cho các thành phần của lớp dẫn xuất
}

3.2. Định nghĩa lại các phương thức ở lớp dẫn xuất

– Trường hợp derived class có property or method trùng tên với base class thì trình biên dịch sẽ có cảnh báo dạng như sau:
“keyword new is required on ‘LớpDẫnXuất.X’ because it  hides inherited member on ‘LớpCơSở.X ‘”.

– Để khắc phục việc này ta dùng từ khóa newngay câu lệnh khai báo thành phần đó.

– Từ khóa new trong trường hợp này có tác dụng che dấu thành phần kế thừa đó đối từ base class

– Nếu phương thức của derived class  muốn truy cập đến thành phần X của base class ?

– Sử dụng từ khóa base theo cú pháp:  base.X

 

Hướng dẫn Debug chương trình trong Visual Studio–Visual Studio Debugging Tutorial.

Khi học lập trình có rất nhiều sinh viên rất ít sử dụng đến công cụ Debug của Visual Studio. Khi chương trình gặp lỗi hay cho ra kết quả sai, bạn không biết tại sao và cắm đầu vào đọc lại từng dòng code. Trong khi công cụ Debug của Visual Studio (VS 2010) là một công cụ mạnh để thực hiện việc trên. Do đó chúng ta sẽ tìm hiểu cách sử dụng công cụ này.

Bạn muốn xem một biến cục bộ trong chương trình C# khi nó thực thi thay đổi giá trị như thế nào, điều này rất hữu ích khi bạn muốn đảm bảo các giá trị kết quả của bạn được chính xác. Ở đây chúng ta sẽ tìm hiểu thông qua ví dụ về cách Debug các biến của bạn trong môi trường Visual Studio 2010.

image

1. Debug C# với Visual Studio 2010

Đầu tiên chúng ta nhìn vào một chương trình ngắn viết bằng ngôn ngữ C# có nhiều biến cục bộ trong đó. Để xem bên trong một hàm bạn cần sử dụng một Break Point(Điểm dừng) ở một nơi trong khối lệnh C# mà bạn có. Ví dụ tôi sẽ sử dụng Chương trình đơn giản  là:

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

namespace Debugging
{
    class Program
    {
        static void Main(string[] args)
        {
            int a;
            int b;
            a = b = 10;
            int c = 90;
            String s = "Hello Thanh Cuong!";
            Console.WriteLine(" a + b + c = {0}", a + b + c);
            Console.WriteLine(s);
        }
    }
}

2. Add Debugging BreakPoint

Ở đây tôi sẽ thêm một Breackpoint vào đầu chương trình ở trên. Trên bên trái của tab mã nguồn bạn nhấp chuột vào dòng muốn debug hoặc đưa con nháy tới dòng muốn debug và nhấn F9 sẽ thấy một dấu hình tròn màu xám trước dòng đó. Như hình bên dưới. Nhấn F5 để chạy chương trình, khi chương trình chạy đến dòng lệnh  mà bạn đặt breakpoint nó sẽ dừng lại và chương trình debug sẽ được mở ra.

image

3. Khi Debugger được mở:

Khi bạn thiết lập Breakpoint (vòng tròn nhỏ màu xám) trên mã lệnh của bạn, công cụ debug sẽ mở ra khi chương trình chạy tới điểm mà bạn đặt BreakPoint. Chương trình sẽ tạm dừng ở đó. Để bạn có thể sử dụng để kiểm tra các biến mà mình nghi ngờ là chương trình có thể chạy sai ở đó.

4. Bắt đầu Debug

Để bắt đầu Debug bạn nhấp chuột vào nút có mũi tên màu xanh ở thanh công cụ trong Visual Studio của bạn hoặc nhấn F5 như hình bên dưới

image

5. Chờ chương trình chạy đến BreakPoint

Khi chương trình thực thi đến Breackpoint mà bạn đã đánh dấu thì dòng đó sẽ chuyển sang màu vàng như hình bên dưới.

image

Bây giờ bạn có thể kiểm tra các biến cục bộ của chương trình bằng cách vào menu Debug –> Windows –> Locals (hoặc ấn Alt F4 )

image

6. Sử dụng tính năng locals để xem giá trị của các biến cục bộ

image

Bây giờ bạn có thể thấy các biến cục bộ trong chương trình của mình và giá trị của nó khi chương trình chạy đến đó. Bạn có thể sử dụng chức năng này để biết được mỗi giá trị thay đổi như thế nào khi chương trình chạy đến đó.

7. Step over statements

Trong phần này, chúng ta sẽ tìm hiểu cách lựa chọn trong visual studio debugger. Thông thường trong chương trình Debug bạn muốn tiến một bước , bạn nhấn vào nút màu xanh ở thanh công cụ để đến điểm breakpoint tiếp theo.

– Step into (F11): Step into thực thi chỉ gọi chính nó, sau đó dừng ở dòng đầu tiên của mã lệnh trong hàm.

– Step over (F10): Di chuyển đến bước kế tiếp trong mã của bạn, nhưng không dừng bên trong mỗi phương thức.

– Step out: bỏ qua phần còn lại của các phương thức hiện hành và đi vào các phương thức được gọi.

image

Các bước thực hiện trong ví dụ này, tôi sử dụng step over (F10), điều này cho phép chúng ta xem giá trị của tất của tất cả các biến.

8. Thông tin thêm

Công cụ Debug của visual 2010 là khá toàn diện và hiệu quả cho hầu hết các vấn đề. Nó bao gồm nhiều sự lựa chọn hơn, bao gồm: Call Stack, Command Windows, Exception, Autos. Bạn có thể cấu hình các breakpoint chỉ đơn giản là viết một thông điệp trong console… Điều này rất tốt để thử nghiệm hiệu suất.

9.  Nếu các công cụ khác không có trình Debug bạn nên làm gì?

Khi sử dụng các trình biên dịch không có công cụ Debug hoặc công cụ debug yếu. Bạn có thể sử dụng các lệnh để in kết quả của các biến ra màn hình để kiểm tra việc hoạt động của các biến đó. Tuy cách này hơi lâu hơn công cụ Debug của Visual Studio nhưng nó cũng khá hiệu quả trong việc kiểm tra và theo dõi các biến.

Bài viết tiếp theo sẽ trình bày các mẹo khác khi debug chương trình.

Bài viết được tham khảo tại dotnetperls.com/debugging

Nguồn: http://thanhcuong.wordpress.com

 

Nhãn: , , ,

17 cách viết “Hello World” với C#

Chúng ta thường bắt đầu một ngôn ngữ lập trình bằng cách viết lại chương trình Hello World! (chương trình in ra dòng chữ “Hello World!”). Đây được coi là chương trình đầu tiên của các ngôn ngữ lập trình. Có rất nhiều cách viết chương trình “Hello World!” trong từng ngôn ngữ lập trình. Bài viết này sẽ giới thiệu 17 cách viết chương trình “Hello World!” với ngôn ngữ C#. Hãy cùng khám phá nào Winking smile

1. “Hello World” cho người mới bắt đầu (A beginners Hello World)

using System;

namespace Hello_World
{
    class Program
    {
        static void Main(string[] args)
        {
            System.Console.WriteLine("Hello World!");
        }
    }
}

2. Phiên bản cải tiến hơn chút (Slightly improved version)

using System;

namespace Hello_World
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
}

3. Command line Arguments

using System;

namespace Hello_World
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(args[0]);
        }
    }
}

4. Sử dụng hàm khởi tạo (Constructor)

using System;

namespace Hello_World
{
    class HelloWorld
    {
        public HelloWorld()
        {
            Console.WriteLine("Hello World!");
        }
        static void Main(string[] args)
        {
            HelloWorld hw = new HelloWorld();
        }
    }
}

5. Sử dụng hàm

using System;

namespace Hello_World
{
    class HelloWorld
    {
        public void helloWorld()
        {
            Console.WriteLine("Hello World!");
        }
        static void Main(string[] args)
        {
            HelloWorld hw = new HelloWorld();
            hw.helloWorld();
        }
    }
}

6. Sử dụng một class khác

using System;

namespace Hello_World
{

    class HelloWorld
    {
        static void Main(string[] args)
        {
            PrintHelloWorld phw = new PrintHelloWorld();
            phw.WriteHelloWorld();
        }
    }

    public class PrintHelloWorld
    {
        public void WriteHelloWorld()
        {
            Console.WriteLine("Hello World!");
        }
    }
}

7. Kế thừa (Inheritance)

using System;

namespace Hello_World
{
    abstract class helloWorldBase
    {
        public abstract void writeHelloWorld();
    }

    class HelloWorld : helloWorldBase
    {
        public override void writeHelloWorld()
        {
            Console.WriteLine("Hello World!");
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            HelloWorld hw = new HelloWorld();
            hw.writeHelloWorld();
        }
    }
}

8. Hàm tạo tĩnh (Static Constructor)

using System;

namespace Hello_World
{
    class HelloWorld
    {
        private static string strHelloWorld;

        static HelloWorld()
        {
            strHelloWorld = "Hello World!";
        }

        void writeHelloWorld()
        {
            Console.WriteLine(strHelloWorld);
        }

        static void Main(string[] args)
        {
            HelloWorld hw = new HelloWorld();
            hw.writeHelloWorld();
        }
    }
}

9. Xử lý ngoại lệ (Exception Handing)

using System;

namespace Hello_World
{
    class HelloWorld
    {
        static void Main(string[] args)
        {
            try
            {
                Console.WriteLine(args[0]);
            }
            catch (IndexOutOfRangeException e)
            {
                Console.WriteLine(e.ToString());
            }
        }
    }
}

10.  Tạo một file .dll và sử dụng nó trong một ứng dụng khác.

-  Tạo project class library

using System;

namespace HelloLibrary
{
    class HelloMessage
    {
        public string message
        {
            get
            {
                return "Hello World!";
            }
        }
    }
}

-  Sử dụng File .dll vừa được tạo ra để sử dụng cho chương trình mới.

using System;
using HelloLibrary;

namespace Hello_World
{
    class HelloWorld
    {
        static void Main(string[] args)
        {
            HelloMessage m = new HelloMessage();
        }
    }
}

11. Sử dụng Property

using System;

namespace Hello_World
{
    class HelloWorld
    {
        public string strHelloWorld
        {
            get
            {
                return "Hello World!";
            }
        }

        static void Main(string[] args)
        {
            HelloWorld hw = new HelloWorld();
            Console.WriteLine(hw.strHelloWorld);
        }
    }
}

12. Sử dụng Deligates

using System;

namespace Hello_World
{
    class HelloWorld
    {
        public static void writeHelloWorld()
        {
            Console.WriteLine("Hello World!");
        }

        public delegate void SimpleDeligate();
        static void Main(string[] args)
        {
            SimpleDeligate d = new SimpleDeligate(writeHelloWorld);
            d();
        }
    }
}

13. Sử dụng Attributes

#define DEBUGGING

using System;
using System.Diagnostics;

namespace Hello_World
{
    class HelloWorld : Attribute
    {
        [Conditional("DEBUGGING")]
        public void writeHelloWorld()
        {
            Console.WriteLine("Hello World!");
        }          

        static void Main(string[] args)
        {
            HelloWorld hw = new HelloWorld();
            hw.writeHelloWorld();
        }
    }
}

14. Sử dụng Interfaces

using System;

namespace Hello_World
{
    interface IHelloWorld
    {
        void writeHelloWorld();
    }

    class HelloWorld:IHelloWorld
    {
        public void writeHelloWorld()
        {
            Console.WriteLine("Hello World!");
        }          

        static void Main(string[] args)
        {
            HelloWorld hw = new HelloWorld();
            hw.writeHelloWorld();
        }
    }
}

15. Dynamic Hello World

using System;
using System.Reflection;

namespace Hello_World
{

    public class HelloWorld
    {
        public string writeHelloWorld()
        {
            return "HelloWorld";
        }

        public static void Main(string[] args)
        {
            Type hw = Type.GetType(args[0]);

            // Instantiating a class dynamically

            object[] nctorParams = new object[] { };
            object nobj = Activator.CreateInstance(hw,
                     nctorParams);

            // Invoking a method

            object[] nmthdParams = new object[] { };
            string strHelloWorld = (string)hw.InvokeMember(
                    "writeHelloWorld", BindingFlags.Default |
                    BindingFlags.InvokeMethod, null,
                    nobj, nmthdParams);

            Console.WriteLine(strHelloWorld);
        }
    }
}

16. Unsafe Hello World

using System;
using System.Reflection;

namespace Hello_World
{
    public class HelloWorld
    {
        unsafe public void writeHelloWorld(char[] chrArray)
        {
            fixed (char* parr = chrArray)
            {
                char* pch = parr;
                for (int i = 0; i < chrArray.Length; i++)
                    Console.Write(*(pch + i));
            }
        }

        public static void Main()
        {
            HelloWorld hw = new HelloWorld();
            char[] chrHelloWorld = new char[] { 'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd' };
            hw.writeHelloWorld(chrHelloWorld);
        }
    }
}

17.  Sử dụng InteropServices

using System;
using System.Runtime.InteropServices;

namespace Hello_World
{
    public class HelloWorld
    {
        [DllImport("kernel32")]
        private static extern int Beep(int dwFreq, int dwDuration);

        static void Main(string[] args)
        {
            Console.WriteLine("Hello World");
            Beep(1000, 2000);
        }
    }
}

18. Kết luận:

Có rất nhiều cách để viết một chương trình máy tính. Tùy vào khả năng sáng tạo của một người mà ta sẽ viết một chương trình với những cách khác nhau. Nhưng trong thực tế, cách viết nào nhanh và đem lại hiệu quả cao sẽ được sử dụng.

Nguồn: http://thanhcuong.wordpress.com

 

Nhãn: , ,

Ghi nội dung ra tập tin.

Bài viết này chúng ta sẽ thực hiện ghi nội dung text ra file. Mình sẽ tiến hành luôn các bước code, các bước Mở VS, tạo Project các bạn xem ở các bài trước nhé!.

Cách 1: dùng WriteAllText để ghi, cách này đơn giản nhất và dễ sử dụng nhất.

public static void Main(string[] args)
{
    //Hàm Environment.NewLine = \n : Đều có tác dụng xuống dòng
    string myText = "Chao cac ban đa đen voi Blog cua Z." +
        Environment.NewLine + "Chuc cac ban hoc tot!";
    System.IO.File.WriteAllText(@"C:\filewrite.txt", myText);
}        

Cách 2: Dùng FileStream để ghi tài liệu, hơi rắc rối một chút nhưng khá hữu ích khi cần phân quyền cho tập tin.

public static void Main(string[] args) { FileStream fs = new FileStream(@"c:\filewrite.txt", FileMode.OpenOrCreate, FileAccess.Write); StreamWriter sw = new StreamWriter(fs); try { sw.WriteLine("Chao cac ban da den voi Blog cua Z.\nChuc cac ban hoc tot!"); } finally { if (sw != null) { sw.Close(); } } }

Cách 3: Dùng TextWriter. Khá đơn giản, dễ sử dụng

public static void Main(string[] args)
{
    TextWriter w = null;
    try
    {
        w = File.CreateText(@"C:\filewrite.txt");
        w.WriteLine("Chao cac ban đa đen voi Blog cua Z.");
        w.WriteLine("Chuc cac ban hoc tot!");
    }
    finally
    {
        w.Close();
        Console.WriteLine("Da ghi xong.");
        Console.ReadLine();
    }
}      

 

Cách 4: Dùng StreamWrite. Khá đơn giản, linh động.

public static void Main(string[] args)
{
    StreamWriter streamWriter = new StreamWriter(@"D:\filewrite.txt");
    streamWriter.WriteLine("This is the first line.");
    streamWriter.WriteLine("This is the second line.");
    streamWriter.Close();
}

PS: Trên đây là 4 cách cơ bản để các bạn ghi nội dung ra tập tin, tùy theo mỗi trường hợp mà có cách sử dụng cho hợp lý sẽ giúp các bạn đạt hiệu quả cao trong quá trình sử dụng. Chúc các bạn thành công

 

Nhãn: , , , , , ,

Đọc nội dung từ file Text.

Vào Start/Run (hoặc bấm phím Windows + R) gõ Notepad rồi nhập nội dung như sau rồi lưu lại ở vị trí C:\text.txt:

Chào các bạn đã đến với Blog của Z.
Chúc các bạn học tốt!

Cách 1: Đọc tất cả nội dung trong tập tin.

public static void Main(string[] args)
{
    StreamReader sr = new StreamReader(@"C:\text.txt");
    string line;
    while ((line = sr.ReadLine()) != null)
    {
        Console.WriteLine("Nội dung:" + line);
    }
    if (sr != null) sr.Close();
}

Cách 2: Sử dụng FileStream để đọc nội dung tập tin từ đầu đến cuối.

private static void Main(string[] args) { StreamReader sReader = null; string contents = null; string fileName = @"C:\text.txt"; try { FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read); sReader = new StreamReader(fileStream); contents = sReader.ReadToEnd(); } finally { if (sReader != null) { sReader.Close(); } } Console.WriteLine("Noi dung: " + contents); Console.ReadLine(); }

Cách 3: Sử dụng StreamReader để đọc từng dòng nội dung cho đến khi kết thúc.

public static void Main(string[] args) { StreamReader sr = new StreamReader(@"C:\text.txt"); string line; while ((line = sr.ReadLine()) != null) { Console.WriteLine("N?i dung:" + line); } if (sr != null) sr.Close(); }

Kết quả:

Chào các bạn đã đến với Blog của Z.
Chúc các bạn học tốt!

PS: 3 cách trên là 3 cách cơ bản nhất để các bạn có thể đọc nội dung trong một tập tin văn bản. Tùy theo mỗi tình huống mà có cách sử dụng cũng như xử lý mà áp dụng để đạt hiệu quả cao. Chúc các bạn thành công.

 

Nhãn: , , , , , ,

Bài mở đầu: Hello World

Mở Visual Studio, Tạo Project và gõ nội dung như sau.

using System;
public class HelloWorld
{
    public static void Main(string[] args) {
    Console.Write("Hello World!");
    }
}

Run (nhấn F5).

Kết quả

HelloWorld
 

Nhãn: , ,