Mặc dù phong cách lập trình là không hoàn toàn bắt buộc, tuy nhiên có thể coi nó là một sự liên hệ chặt chẽ và tất yếu đối với công việc lập trình. Vì lẽ đó mà các trường khi dạy lập trình cũng có nhắc đến điều này trong quá trình dạy, tuy nhiên thường rất hạn chế.
Mặc dù phong cách lập trình là không hoàn toàn bắt buộc, tuy nhiên có thể coi nó là một sự liên hệ chặt chẽ và tất yếu đối với công việc lập trình. Vì lẽ đó mà các trường khi dạy lập trình cũng có nhắc đến điều này trong quá trình dạy, tuy nhiên thường rất hạn chế.
Bài thực hành số 1: Tạo lớp Student chứa các biến studentID, studentName, age, gender, avgScore. Trong lớp này có xử lý nhập và xuất giá trị của các biến.
Bài thực hành số 2: Tạo lớp Score có một hằng số P mang giá trị 100, biến hoten, biến dtoan, biến dly, biến dhoa và biến percent. Viết xử lý nhập giá trị cho cá biến trừ biến percent. Tính điểm trung bình theo công thức:
Bài thực hành số 3: Viết chương trình tính chu vi và diện tích của các hình sau: đường tròn, hình chữ nhật, hình thang, tam giác
Một biến được sử dụng để lưu trữ dữ liệu trong một chương trình và được khai báo với một kiểu dữ liệu thích hợp. Mỗi biến có một cái tên và kiểu dữ liệu định nghĩa loại dữ liệu được lưu trữ trong biến.
Một ví dụ về khai báo biến trong c#
Click đúp vào file “Program.cs” để mở trong trình soạn thảo code.
Thêm code như sau vào thân phương thức static void Main(string[] args)
Giao diện code editor của Visual Studio
Nếu để ý chúng ta sẽ thấy, khi gõ một vài ký tự, Visual Studio sẽ tự động liệt kê các code có chứa những chữ này. Chúng ta có thể trực tiếp lựa chọn bằng cách di chuyển tới mục mong muốn bằng các phím mũi tên, sau đó ấn phím tab mà không cần gõ hết câu.
Tính năng này của trình soạn thảo C# trong Visual Studio được gọi là IntelliSense. IntelliSense giúp việc soạn thảo code C# đặc biệt nhanh chóng và tiện lợi, cũng như giúp giải phóng người lập trình khỏi việc phải ghi nhớ máy móc tất cả các tên gọi. Sau này chúng ta sẽ còn sử dụng nhiều tính năng khác của IntelliSense.
Cũng có thể gọi các lệnh này qua menu Debug => Start Debugging hoặc Start Without Debugging
Mặc dù chương trình của chúng ta chưa thực hiện được chức năng gì nhưng đến đây xin chức mừng bạn đã viết được chương trình đầu tiên với C# và .NET framework.
Debug là chế độ hoạt động mà chương trình được gắn vào một chương trình đặc biệt gọi là debugger (ở đây là Visual Studio Debugger) để giúp chúng ta theo dõi được hoạt động của chương trình, như là giá trị của các biến. Chương trình chạy ở chế độ debug có thể được dừng tại bất kỳ câu lệnh nào (bằng cách đánh dấu break ở câu lệnh đó) và tiếp tục chạy/dừng theo yêu cầu của người lập trình. Debug giúp chúng ta phát hiện các lỗi logic của chương trình. Đối với lỗi cú pháp, trình soạn thảo của C# có thể trực tiếp hiển thị trong quá trình viết code mà không cần chạy thử.
Trong Visual Studio, một solution có thể chứa nhiều project. Chúng ta sẽ thêm một project thứ hai vào solution. Cách thực hiện xem trong hình minh họa dưới đây.
Giới thiệu ngôn ngữ lập trình C#. C# hay Csharp là một trong những ngôn ngữ lập trình trong họ DotNet của Microsoft và khi lập trình C# người lập trình phải chuẩn bị và cài đặt .NET Framework.
Hai thành phần cốt lõi của .NET Framework không thể thiếu cho bất kỳ ứng dụng hoặc dịch vụ được phát triển trên nền tảng này là Common Language Runtime (CLR) và .NET Framework Class Library (FCL).
Trong đó Common Language Runtime (CLR) có nhiệm vụ quản lý bộ nhớ, thực thi code, xử lý lỗi,….NET Framework Class Library (FCL) được sử dụng để phát triển các ứng dụng từ command line đến Graphical User Interface (GUI).
Chọn File => New => Project hoặc bấm tổ hợp Ctrl + Shift + N
Chọn loại project là Console App (.NET framework). Khi chọn loại project chúng ta có thể thiết lập các tham số sau:
Các khái niệm solution và project sẽ được xem xét chi tiết ở bài sau.
Trong các ứng dụng Windows truyền thống, mã nguồn chương trình được biên dịch trực tiếp thành mã thực thi của hệ điều hành.
Trong các ứng dụng Windows sử dụng .NET Framework, mã nguồn chương trình (C#, VB.NET) được biên dịch thành CIL (formerly called MSIL) và được lưu trữ trong file gọi là assembly.
Sau đó assembly được biên dịch bởi CLR để trở thành mã thực thi của hệ điều hành. Hình bên dưới thể hiện quá trình chuyển đổi CIL code thành native code
Tạo lớp tên InputOutputExample với xử lý sau
Hướng dẫn thiết lập lớp thực thi đầu tiên
Chuột phải project -> chọn Properties
Chọn class thực thi tại Startup object
Chọn biểu tượng Start để chạy chương trình, ngoài ra chúng ta có thể chọn Debug để chạy chương trình ở chế độ gỡ rối như hình bên dưới
Kết quả sau khi thực thi chương trình mẫu ở trên
Phương thức Console.ReadLine() cũng có thể được sử dụng để nhập dữ liệu kiểu số. Dữ liệu được nhập vào là một string và sau đó được chuyển đổi thành int hoặc float. C# hỗ trợ lớp Convert để thực hiện chuyển đổi từ kiểu dữ liệu cơ sở này sang kiểu dữ liệu cơ sở khác.
Đoạn code sau thực hiện nhập name, age và salary sử dụng Console.ReadLine() và sau đó thực hiện chuyển đổi age sang int và salary sang double bằng cách sử dụng những phương thước thích hợp của lớp Convert.
C# hỗ trợ nhiều kiểu dữ liệu như số, ký tự hoặc chuỗi. Khi khai báo một biến, một kiểu dữ liệu được gán cho biến đó.
Bảng bên dưới trình bày các kiểu dữ liệu trong C#
Ví dụ về khai báo biến và hằng số
Nếu như những lập trình viên Java có thể sử dụng NetBeans, Eclipse để lập trình thì những lập trình viên DotNet sẽ sử dụng IDE là Microsoft Visual Studio. Đây là công cụ cho phép lập trình viên soạn thảo code, biên dịch, debug và thực thi code. Trong phạm vi môn học này chúng ta sẽ sử dụng Microsoft Visual Studio 2012.
Những ngôn ngữ lập trình được hỗ trợ trong Microsoft Visual Studio 2012 là Visual Basic .NET, Visual C#, Visual C++. Hình bên dưới là giao diện Microsoft Visual Studio 2012
Sử dụng Start Page -> chọn New Project
Hoặc File -> chọn New -> chọn Project
Chọn ngôn ngữ, loại ứng dụng, nhập tên project, chỉ định nơi lưu trữ -> chọn OK
Chuột phải lên project -> chọn Add -> chọn Class
Nếu như output là xử lý hiển thị kết quả đến người dùng thì input là xử lý nhận kết quả mà người dùng nhập vào.
Xử lý output, sử dụng một trong 2 phương thức bên dưới
Xử lý input, sử dụng một trong 2 phương thức bên dưới