Bài đăng nổi bật


Module 3 Tutorial Lab 1 - Creating and Using Methods
Module 3 Tutorial Lab 1 - Creating and Using Methods
Trong lab này, bạn sẽ thực hành tạo và gọi các phương thức để thực hiện một số hàm toán học đơn giản. Bạn sẽ bắt đầu bằng cách tạo các phương thức đơn giản chấp nhận đối số và trả về giá trị và sau đó bạn thực hiện một số thực hành nạp chồng phương thức.
Visual Studio Steps
  1. Mở Visual Studio
  2. Chọn File, New, Project
  3. Từ phần Templates, chọn Visual C#
  4. Chọn Console App (.NET Framework if using VS 2017 or later)
  5. Đặt tên project, ví dụ Mod3_Lab1
  6. Lựa chọn vị trí lưu dự án.
  7. Nhấn nút OK và Visual Studio sẽ tạo ra ứng dụng mới C# Console application project cho bạn và mở ra file Program.cs trong editor. 
  8. Đặt con trỏ của bạn ngay sau dấu ngoặc nhọn mở trong phương thức Main, sau đó nhấn enter để tạo một dòng mới
  9. Đặt con trỏ của bạn sau dấu ngoặc nhọn đóng của hàm void void Main (string[] args) và nhấn enter. Chúng tôi đang làm điều này bởi vì bạn không muốn đặt các phương thức/hàm bên trong một hàm khác.
  10. Đoạn mã sau bạn sẽ nhập là một phương thức mới gọi là Sum() sẽ được sử dụng để thêm các giá trị được truyền vào nó. Bạn sẽ thêm vào phương thức này và overload nó sau này trong lab. Bây giờ, nhập mã sau vào trình soạn thảo của bạn.
// Sum() method that takes two integer arguments and sums them
// The method returns no value which is why we use void
// We also need to use static in the method signature because Main is static
// and you cannot call a non-static method from a static method
static void Sum(int first, int second)
{
    int sum = first + second;
    Console.WriteLine($"The sum of {first} and {second} is: {sum}");
}
11. Bây giờ chúng ta có thể gọi phương thức này từ bên trong Main để tính tổng của hai số. Nhập mã sau trong dấu ngoặc nhọn của Main():
Sum(20, 40);
Mã hoàn chỉnh của bạn sẽ trông như sau:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Mod3_Lab1
{
    class Program
    {
        static void Main(string[] args)
        {

            Sum(20, 40);
        }

        // Sum() method that takes two integer arguments and sums them
        // The method returns no value which is why we use void
        // We also need to use static in the method signature because Main is static
        // and you cannot call a non-static method from a static method
        static void Sum(int first, int second)
        {
            int sum = first + second;
            Console.WriteLine($"The sum of {first} and {second} is: {sum}");
        }
    }
}
  1. Nhấn CTRL + F5 hoặc lựa chọn Debug, Start Without Debugging để kiểm tra output và thực hiện gọi method.
  2. Ví dụ đầu tiên bạn tạo gọi một phương thức không trả về giá trị. Bây giờ chúng ta sẽ sửa đổi phương thức đó để nó trả kết quả trở lại phương thức gọi. Chúng tôi cũng sẽ cần sửa đổi mã trong Main.
  3. Để sửa đổi phương thức, nhập mã sau đây.
// Sum() method that takes two integer arguments and sums them
        // The method returns an integer value which is why we use int in the signature
        // We also need to use static in the method signature because Main is static
        // and you cannot call a non-static method from a static method
        static int Sum(int first, int second)
        {
            int sum = first + second;
            return sum;
        }
  1. Cuối cùng, chúng ta cần sửa đổi mã trong Main() để tận dụng một phương thức trả về giá trị. Ở đây, chúng tôi khai báo một biến số nguyên để nhận giá trị trả về. Giá trị trả về và biến được sử dụng để giữ nó phải khớp với nhau về kiểu dữ liệu. Sau đó chúng tôi in kết quả ra cửa sổ console command-line.
static void Main(string[] args)
        {

            int result = Sum(20, 40);
            Console.WriteLine($"The sum of 20 and 40 is {result}");
        }
  1. Chạy lại ứng dụng và kiểm tra đầu ra. Cả hai đầu ra nên giống nhau. Điều duy nhất chúng tôi đã thay đổi, về cơ bản, là có phương thức trả về tổng của hai số và nơi chức năng đầu ra cư trú.
  2. Bây giờ chúng ta hãy xem xét overloading phương thức Sum(). Chúng tôi sẽ tạo ra hai phương thức bổ sung. Đầu tiên, tạo một phương thức chấp nhận ba số nguyên bằng cách nhập mã sau đây:
// Sum() method that takes three integer arguments and sums them
// and then returns the value
// This method uses the same name as the Sum() method that takes two integers
// but the parameters here indicate the method is expecting three integers as arguments
// The compiler knows which method to call based on the number of arguments passed in
static int Sum(int first, int second, int third)
{
    int sum = first + second + third;
    return sum;
}
  1. Tiếp theo, nhập mã sau đây sẽ tạo phương thức Sum() chấp nhận hai nhân đôi làm đối số:
// Sum() method that takes two doubles as arguments
// This method uses the same name as the Sum() method that takes two integers
// but the parameters here indicate the method is expecting two doubles as arguments
// The compiler knows which method to call based on the arguments data types
static double Sum(double first, double second)
{
    double result = first + second;
    return result;
}
  1. Cuối cùng, sửa đổi mã trong Main() gọi các phương thức để nó trông như thế này:
static void Main(string[] args)
{

    int result = Sum(20, 40);
    Console.WriteLine($"Calling Sum() with two arguments, result is: {result}");

    int result3 = Sum(10, 50, 80);
    Console.WriteLine($"Calling Sum() with three arguments, result is: {result3}");

    double dblResult = Sum(20.5, 30.6);
    Console.WriteLine($"Calling Sum() that takes doubles result in: {dblResult}");
}
  1. Chạy lại ứng dụng và kiểm tra đầu ra. Bạn sẽ thấy các giá trị tổng hợp chính xác được hiển thị cho mỗi lời gọi của ba phương thức khác nhau. Mặc dù chúng đều có tên Sum, trình biên dịch sẽ tìm ra phương thức đúng để gọi dựa trên chữ ký của phương thức. Đó là cách overloading phương thức hoạt động.
Module 3 Tutorial Lab 2 - Exception Handling
 Bookmark this page

Module 3 Tutorial Lab 2 - Exception Handlin

Module 3 Hướng dẫn Lab 2 - Xử lý ngoại lệ
 Đánh dấu trang này

Module 3 Hướng dẫn Lab 2 - Xử lý ngoại lệ
Trong lab này, bạn sẽ thực hành các kỹ thuật mã hóa xử lý ngoại lệ. Các ngoại lệ sẽ xảy ra trong mã của bạn và lập kế hoạch và mã hóađúng cách sẽ làm cho ứng dụng của bạn hoạt động một cách chuyên nghiệp.
Bước Visual Studio
  1. Mở Visual Studio
  2. Chọn File, New, Project
  3. Từ phần Templates, chọn Visual C#
  4. Chọn Console App (.NET Framework if using VS 2017 or later)
  5. Đặt tên project, ví dụ Mod3_Lab2
  6. Lựa chọn vị trí lưu dự án.
  7. Nhấn nút OK và Visual Studio sẽ tạo ra ứng dụng mới C# Console application project cho bạn và mở ra file Program.cs trong editor. 
  8. Đặt con trỏ của bạn ngay sau dấu ngoặc nhọn mở trong phương thức Main, sau đó nhấn enter để tạo một dòng mới
  9. Đặt con trỏ của bạn sau dấu ngoặc nhọn đóng của hàm void void Main(string[] args)  và nhấn enter. Chúng tôi đang làm điều này bởi vì bạn không muốn đặt các phương thức hàm bên trong một hàm khác.
  10. Đoạn mã sau bạn sẽ nhập là một phương thức mới có tên Divide() sẽ thực hiện phép chia đơn giản. Vấn đề chúng ta sẽ gặp là một vấn đề phổ biến trong toán học, chia cho số không. Nó không được phép và như bạn sẽ thấy trong lab này, .NET Framework thực sự có một ngoại lệ liên quan đến điều này. Hiện tại, hãy nhập mã sau đây để chúng tôi sẽ tạo ngoại lệ này. Chúng tôi sẽ giải quyết việc xử lý nó trong các nhiệm vụ tiếp theo.
// Method Divide() accepts two integer arguments and returns the result
// of dividing first by second
// We do no validation of the the arguments so a user may pass in a zero
// in place of the second parameter.   This is an illegal operation in math
// If we don't validate input or catch the error, the application will crash
static int Divide(int first, int second)
{
    int result = first / second;
    return result;
}
11. Bây giờ chúng ta có thể gọi phương thức này từ bên trong Main để thực hiện phép chia. Nhập mã sau trong dấu ngoặc nhọn của Main():
int result = Divide(2, 0);
  1. Chạy ứng dụng bằng cách nhấn CTRL + F5 hoặc chọn Debug, Start Without Debugging, từ menu. Ứng dụng sẽ sập và hiển thị một thông báo khó hiểu trong console window cùng với hộp thoại bật lên và cho bạn biết rằng ứng dụng đã ngừng hoạt động. Đọc tin nhắn trong console window và chú ý tham chiếu đến System.DivideByZeroException. Bạn không muốn người dùng ứng dụng của bạn thấy hành vi hoặc tin nhắn như thế này. Hãy sửa nó đi.
  2. Nhấp vào nút  Close Program trên hộp thoại và sau đó nhấn Enter để đóng console window và quay lại Visual Studio.
  3. Bạn cần phải bọc mã, điều đó có thể gây ra ngoại lệ, bên trong một khối xử lý ngoại lệ bằng cách sử dụng try..catch..finally. Sửa đổi phương thức Divide() của bạn để trông như thế này:
// Method Divide() that contains exception handling to deal with 
// divide by zero exceptions.
static int Divide(int first, int second)
{
    int result = 0;
    try
    {
        result = first / second;
    }
    catch (DivideByZeroException ex)
    {
        Console.WriteLine("Cannot divide by zero, please provide a non-zero value for your second value");
    }

    return result;
}
  1. Chúng tôi đã thay đổi một vài điều ở đây. Đầu tiên, chúng tôi di chuyển khai báo kết quả trên một dòng của riêng mình. Điều này là cần thiết để đảm bảo chúng tôi có quyền truy cập vào cả bên trong và bên ngoài mã xử lý ngoại lệ.
  2. Tiếp theo, chúng tôi gói dòng mã có thể gây ra ngoại lệ, với một khối try. Như đã đề cập trong nội dung khóa học, bạn chỉ cần đặt mã có khả năng dễ bị lỗi, bên trong khối try. Chúng tôi không đặt khai báo biến trong khối try.
  3. Khối catch sau khối try sẽ đặc biệt cho ngoại lệ DivideByZeroException và nếu xảy ra, chúng tôi sẽ hiển thị thêm thân thiện với người dùng tin nhắn đến console window.
  4. Chúng tôi không bao gồm một khối finally ở đây và chúng tôi cũng không kiểm tra bất kỳ trường hợp ngoại lệ nào khác vì lab được thiết kế chỉ để cung cấp cho bạn thực hành trong việc tạo thói quen xử lý ngoại lệ đơn giản.
  5. Bây giờ, hãy thực hiện một số thay đổi đối với mã trong Main() để chúng tôi yêu cầu người dùng nhập liệu. Đây là một kịch bản thực tế hơn trái ngược với các giá trị mã hóa cứng cho các biến trong mã của chúng tôi. Nhập mã sau vào Main() để nhắc nhập và gọi phương thức với các giá trị đó:
static void Main(string[] args)
{
    int first = 9;
    int second = 0;
    Console.WriteLine("Enter your first number: ");
    first = System.Int32.Parse(Console.ReadLine());
    Console.WriteLine("Enter your second number: ");
    second = System.Int32.Parse(Console.ReadLine());

    int result = Divide(first, second);
    Console.WriteLine($"The result of dividing {first} by {second} is {result}");
}
  1. Chạy mã mới được sửa đổi này để xem hành vi của ứng dụng của bạn bây giờ. Bạn sẽ thấy thông báo mới được hiển thị nếu bạn truyền 0 vào dưới dạng tham số thứ hai nhưng không thấy thông báo nếu bạn vượt qua giá trị khác không.

Self Assessment Lab
 Bookmark this page

Module Three Self-Assesment Lab
Mô-đun ba lab tự đánh giá
Trong các khóa học sau trong thời gian phát triển C# của bạn, bạn sẽ bắt đầu tạo các tệp lớp để thể hiện các đối tượng trong thế giới thực. Các tệp lớp sẽ bao gồm các thuộc tính và phương thức. Để chuẩn bị cho việc này, bài tập cho mô-đun này sẽ yêu cầu bạn suy nghĩ về một số phương thức cơ bản mà bạn có thể thực hiện trong mã của mình.
Nhiệm vụ này yêu cầu bạn tạo một số phương thức để lấy dữ liệu cho các biến của mình và gửi dữ liệu đó đến console window.
Trong bài tập, bạn phải thực hành nhận các giá trị từ người dùng và gán các giá trị cho các biến cục bộ. Ví dụ: bạn có thể tạo một phương thức có tên GetStudentInform() và trong phương thức đó, bạn có thể nhắc người dùng cho từng mẩu thông tin sinh viên và sau đó gán nó cho các biến bạn đã tạo trước đó trong mô-đun đầu tiên của khóa học này.
Tiếp theo, tạo các phương thức như PrintStudentDetails (chuỗi đầu tiên, chuỗi cuối cùng, sinh nhật chuỗi) chấp nhận các biến thích hợp và sử dụng một thông báo thích hợp để in nội dung ra console window.
Ví dụ đầu tiên là một hướng dẫn cho bạn, phần còn lại bạn sẽ cần phải tự tạo.
Tạo một phương thức nhắc người dùng ứng dụng bảng điều khiển của bạn nhập thông tin cho học sinh:
static void GetStudentInformation()
{
      Console.WriteLine("Enter the student's first name: ");
      string firstName = Console.ReadLine();
      Console.WriteLine("Enter the student's last name");
      string lastName = Console.ReadLine();
       // Code to finish getting the rest of the student data
      .....
}

static void PrintStudentDetails(string first, string last, string birthday)
{
    Console.WriteLine("{0} {1} was born on: {2}", first, last, birthday);
}
  1. Sử dụng code mẫu một phần ở trên, hoàn thành phương thức để lấy dữ liệu sinh viên.
  2. Tạo một phương thức để có được thông tin cho một giáo viên, một khóa học, một lập trình và một mức độ sử dụng một phương thức tương tự như trên.
  3. Tạo các phương thức để in thông tin ra màn hình cho từng đối tượng, chẳng hạn như static void PrintStudentDetails (...).
  4. Từ trong Main(), hãy gọi từng phương thức để nhắc nhập từ người dùng ứng dụng của bạn.
  5. Chỉ cần nhập đủ thông tin để cho bạn hiểu cách sử dụng các phương thức. (Ít nhất ba thuộc tính mỗi).
  6. Gán các giá trị là đầu vào, cho các biến thích hợp.
  7. Xuất các giá trị của từng đối tượng bằng các phương thức "print" mà bạn đã tạo.
Ngoại lệ
Đôi khi, các nhà phát triển tạo chữ ký phương thức sớm trong quá trình phát triển nhưng để lại việc thực hiện cho đến sau này. Điều này có thể dẫn đến các phương thức không hoàn thành nếu nhà phát triển quên về các phương thức trống này. Một cách để giúp khắc phục vấn đề không nhớ hoàn thành một phương thức là ném một ngoại lệ trong phương thức đó nếu không có chi tiết triển khai.

  1. Đối với tác vụ này, hãy sử dụng MSDN để nghiên cứu ngoại lệ  NotImplementedException exception.
  2. Tạo một phương thức mới để xác nhận ngày sinh của học sinh. Bạn sẽ không viết bất kỳ mã xác thực nào trong phương thức này, nhưng bạn sẽ ném NotImplementedException trong phương thức này
  3. Gọi phương thức từ Main() để xác minh ngoại lệ của bạn được ném

Post a Comment

Mới hơn Cũ hơn