Từ 1 tới 6 trên tổng số 6 kết quả

Đề tài: Giải thích giúp em đoạn code về C# Multiple Return Values

  1. #1
    Ngày gia nhập
    11 2011
    Bài viết
    70

    Mặc định Giải thích giúp em đoạn code về C# Multiple Return Values

    Em đang tìm hiểu về vấn đề C# Multiple Return Values, em tìm được 1 đoạn code demo, đọc cảm thấy không hiểu lắm về return new KeyValuePair<int, int>((int)Math.Pow(2, 2), (int)Math.Pow(3, 2));, với lại tại sao phải sử dụng biến static vậy, mọi người giải thích giúp em với

    Visual C# Code:
    1.  
    2. using System;
    3. using System.Collections.Generic;
    4.  
    5. class Program
    6. {
    7.     static void GetTwoNumbers(out int number1, out int number2)
    8.     {
    9.     number1 = (int)Math.Pow(2, 2);
    10.     number2 = (int)Math.Pow(3, 2);
    11.     }
    12.  
    13.     static KeyValuePair<int, int> GetTwoNumbers()
    14.     {
    15.     return new KeyValuePair<int, int>((int)Math.Pow(2, 2), (int)Math.Pow(3, 2));
    16.     }
    17.  
    18.     static void Main()
    19.     {
    20.     // Use out parameters for multiple return values.
    21.     int value1;
    22.     int value2;
    23.     GetTwoNumbers(out value1, out value2);
    24.     Console.WriteLine(value1);
    25.     Console.WriteLine(value2);
    26.  
    27.     // Use struct for multiple return values.
    28.     var pair = GetTwoNumbers();
    29.     Console.WriteLine(pair.Key);
    30.     Console.WriteLine(pair.Value);
    31.     }
    32. }

  2. #2
    Ngày gia nhập
    08 2010
    Bài viết
    125

    khai báo static là khi để khi ông bỏ vào method Main thì ông ko phải new Program() rồi mới .2 cái tên method trên nữa.
    KeyValuaPair là trả về key và value, cái này tui hay dùng để lấy key khi select trong combobox

  3. #3
    Ngày gia nhập
    09 2011
    Bài viết
    22

    Hi hàm hay method trả về nhiều giá trị là khái niệm khi dùng hàm hay method với các biến tham trị mà được dùng như tham chiếu
    Trong C# ,thì có hai cách để một biến tham trị (int ,float ,double,..) được dùng như tham chiếu đó là thêm hai từ khóa :
    ref và out
    Và khi một biến tham trị được truyền vào bằng một trong hai từ khóa này thì hàm được gọi sẽ tương tác trực tiếp với địa chỉ của biến chứ không tương tác với giá trị copy của biến như trước nữa do đó nó thay đổi giá trị của biến ..
    VD:
    Code:
         //Biến dùng với ref 
         int a =0;
         //Biến dùng với out
        int b;
       //Hiển thị:
      Console.WriteLine("{0} - {1} trước khi thay đổi " ,a,b);
       //Nó ra 0 -0..
        //Khai báo hàm thay đổi
       public static void ChangeValueOfValueType(ref int a,out int b)
        {
           a = 3;
           b = 3;
         }
       //Gọi hàm 
         ChangeValueOfValueType(ref a,out b);
       // Hiển thị nó ra :
       .....
      Console.WriteLine("{0} - {1} sau khi thay đổi " ,a,b);
       //Nó ra 4,3
    Hj chúc bạn thành công nha!

  4. #4
    Ngày gia nhập
    09 2011
    Bài viết
    22

    +>Sử dụng biến static để có thể sử dụng trực tiếp các phương thức của một Class mà không cần phải tạo ra đối tượng của nó
    +>Đặc điểm duy nhất cần chú ý đó là chỉ có ngữ cảnh static (tức là các hàm được khai báo với từ khóa static) mới gọi được các hàm static khác...
    +>Phần new KeyValuePair<int, int>((int)Math.Pow(2, 2), (int)Math.Pow(3, 2)); là cách tạo ra một đối tượng kiểu KeyValuePair với hai cặp giá trị kiểu int ..và phần này [ (int)Math.Pow(2, 2), (int)Math.Pow(3, 2) ] thì bạn không cần quan tâm vì bản chất của nó là trả về hai số kiểu int để truyền vào trong hàm tạo .. Vì trong ngữ cảnh này hàm tạo của nó là :
    KeyValuePair<int,int>(int num1,int num2)
    Chúc bạn thành công!

  5. #5
    Ngày gia nhập
    04 2010
    Bài viết
    1,534

    Trích dẫn Nguyên bản được gửi bởi ngocanhk6apro Xem bài viết
    +>...
    +>Đặc điểm duy nhất cần chú ý đó là chỉ có ngữ cảnh static (tức là các hàm được khai báo với từ khóa static) mới gọi được các hàm static khác...
    ...
    Ngược lại mới đúng.
    Hàm static chỉ gọi được hàm static khác.
    Hàm đối tượng (không static) vẫn gọi được hàm static như thường

  6. #6
    Ngày gia nhập
    09 2011
    Bài viết
    22

    Mặc định Giải thích giúp em đoạn code về C# Multiple Return Values

    Trích dẫn Nguyên bản được gửi bởi VoTichSu Xem bài viết
    Ngược lại mới đúng.
    Hàm static chỉ gọi được hàm static khác.
    Hàm đối tượng (không static) vẫn gọi được hàm static như thường
    Yes! that's right

Các đề tài tương tự

  1. Giúp lấy liên kết Fileupload trong code Multiple Attachments
    Gửi bởi davidhuynhvan trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 2
    Bài viết cuối: 04-11-2012, 01:39 PM
  2. Lỗi khi debug C#: not all code paths return a value
    Gửi bởi percy trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 9
    Bài viết cuối: 24-05-2012, 01:35 PM
  3. Lỗi not all code paths return a value
    Gửi bởi thaicuong trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 27-07-2011, 12:18 AM
  4. ADO.NET Lỗi not all code paths return a value ! giúp em với
    Gửi bởi viet91 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 10
    Bài viết cuối: 12-05-2011, 03:40 PM
  5. Lỗi: WindownApplication.Form1.doithoigian(long):no t all code paths return a value ?
    Gửi bởi JillValentine trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 05-04-2011, 05:53 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn