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

Đề tài: Làm sao để khai báo kiểu dữ liệu mới trong C#???

  1. #1
    Ngày gia nhập
    03 2009
    Bài viết
    3

    Mặc định Làm sao để khai báo kiểu dữ liệu mới trong C#???

    Mọi người có ai biết cách khai báo và sử dụng kiểu dữ liệu mới trong C# không? Mình mò mãi mà không ra, Search trên mạng cũng không thấy !
    Có Pro C# nào biết thì hướng dẫn với nha !
    Thank So Much !
    Đã được chỉnh sửa lần cuối bởi William_IT : 18-03-2009 lúc 07:42 PM.

  2. #2
    Ngày gia nhập
    09 2008
    Nơi ở
    Ở nhà chứ đâu... nhìn cái gì?!?!
    Bài viết
    218

    Một đối tượng, một struct, một enum có thể coi là một kiểu dữ liệu mới rồi

    Đây là ví dụ một kiểu dữ liệu số ID tự tăng khi thêm một phần tử

    Visual C# Code:
    1. /// <summary>
    2.     /// Auto increase ID number.
    3.     /// </summary>
    4.     public struct IdentifyNumber : IEquatable<IdentifyNumber>
    5.     {
    6.         #region field(s)
    7.        
    8.         static int autoincreasenumber = 0;
    9.        
    10.         #endregion
    11.        
    12.         #region constructor(s)
    13.        
    14.         public IdentifyNumber(int factor)
    15.         {
    16.             if (autoincreasenumber < factor) autoincreasenumber = factor;
    17.             else autoincreasenumber += factor;
    18.         }
    19.        
    20.         #endregion
    21.        
    22.         #region method(s)
    23.  
    24.         public int Value
    25.         {
    26.             get { return autoincreasenumber; }
    27.         }
    28.        
    29.         #region implements IEquatable<T>
    30.        
    31.         public bool Equals(IdentifyNumber other)
    32.         {
    33.             return (autoincreasenumber == other.Value);
    34.         }
    35.        
    36.         #endregion
    37.        
    38.         #region overriding from Object
    39.        
    40.         public override int GetHashCode()
    41.         {
    42.             int hashCode = 0;
    43.            
    44.             unchecked {
    45.                 hashCode += 1000000007 * autoincreasenumber.GetHashCode();
    46.             }
    47.            
    48.             return hashCode;
    49.         }
    50.        
    51.         public override bool Equals(object other)
    52.         {
    53.             return (other is IdentifyNumber) && Equals((IdentifyNumber)other);
    54.         }
    55.        
    56.         #endregion
    57.        
    58.         #region public static // dùng dấu ('==' hoặc '!=') để so sánh thay cho hàm Equal().
    59.        
    60.         public static bool operator == (IdentifyNumber left, IdentifyNumber right)
    61.         {
    62.             return (left.Equals(right));
    63.         }
    64.        
    65.         public static bool operator != (IdentifyNumber left, IdentifyNumber right)
    66.         {
    67.             return (!left.Equals(right));
    68.         }
    69.        
    70.         #endregion
    71.        
    72.         #endregion
    73.     }

    Sử dụng

    Khởi tạo new cho struct này

    Visual C# Code:
    1. IdentifyNumber id1 = new IdentifyNumber(1); // bắt đầu là 1 và sẽ tự tăng 1 cho lần sau
    2. IdentifyNumber id2 = new IdentifyNumber(2); // bắt đầu là 2 và sẽ tự tăng 2 cho lần sau

    Muốn biết giá trị hiện tại thì dùng

    Visual C# Code:
    1. id1.Value;
    2. //hoặc
    3. id2.Value;

    Bạn tham khảo để tạo cho mình một kiểu dữ liệu nhé.
    Đã được chỉnh sửa lần cuối bởi OWickedFox : 19-03-2009 lúc 12:53 AM. Lý do: sửa lỗi chính tả
    Quá nản cái viễn cảnh hiện tại. Nhiều "thanh niên" sống "ảo" quá. Thời nào rồi mà còn hỏi WinForms + ADO.NET

  3. #3
    Ngày gia nhập
    03 2009
    Bài viết
    3

    Cám ơn bác nhiều nha !
    Gần sáng hôm nay em mò thấy kiểu Struck này rùi nhưng mà chưa biết cách sài ! Giờ phải thử ngay mới được !
    Ai có kinh nghiệm làm việc với kiểu dữ liệu mới này thì chia sẻ với nha !
    Thanks for your help!

  4. #4
    Ngày gia nhập
    03 2009
    Bài viết
    5

    Cái này thì đơn giản:

    Visual C# Code:
    1.     {
    2.         //Tạo kiểu PHAN_SO
    3.         struct PHAN_SO
    4.         {
    5.             public int tu_so;
    6.             public int mau_so;
    7.         }
    8.         public static void Xu_ly()
    9.         {
    10.             Console.WriteLine("Tich 2 phan so");
    11.             PHAN_SO x, y, z;
    12.  
    13.             //Dữ liệu nhập chưa kiểm tra
    14.             Console.Write("Tu so 1:");
    15.             int x.tu_so = int.Parse(Console.ReadLine());                        
    16.             Console.Write("Mau so 1:");
    17.             int x.mau_so = int.Parse(Console.ReadLine());
    18.             Console.Write("Tu so 2:");
    19.             int y.tu_so = int.Parse(Console.ReadLine());                        
    20.             Console.Write("Mau so 2:");
    21.             int y.mau_so = int.Parse(Console.ReadLine());
    22.                        
    23.             z.tu_so = x.tu_so * y.tu_so;
    24.             z.mau_so = x.mau_so * y.mau_so;
    25.            
    26.             string Chuoi = "Phan so:" + z.tu_so + "/" + z.mau_so;            
    27.             Console.Write(Chuoi);
    28.             Console.ReadLine();
    29.         }
    30.     }

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

  1. Tệp tin *.lib khác *.dll khác nhau như thế nào ?
    Gửi bởi ngusaomanoi trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 1
    Bài viết cuối: 18-12-2012, 05:15 PM
  2. taị sao các biến static khi khai báo để dùng được lại phải khai báo lại trước hàm main ? ?
    Gửi bởi anhnpson trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 8
    Bài viết cuối: 15-06-2011, 08:18 PM
  3. Bài tập C khai báo và sử dụng con trỏ trong lập trình C?
    Gửi bởi lamrung trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 14
    Bài viết cuối: 13-11-2010, 11:28 AM
  4. Lập trình C Thắc mắc về khai báo protoype và các hàm liên quan khi khai báo!
    Gửi bởi ganhim trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 15
    Bài viết cuối: 10-08-2010, 02:03 PM
  5. Sự khác nhau giữa các khai báo int, void, float trong khai báo hàm?
    Gửi bởi toend2008 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 06-05-2009, 07:19 PM

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