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

Đề tài: kiểu enum trong C# dùng để làm gì?

  1. #1
    Ngày gia nhập
    12 2007
    Bài viết
    116

    Mặc định kiểu enum trong C# dùng để làm gì?

    mình đã đọc qua tài liệu về kiểu enum, nó là kiểu có cấu trúc trong C#. quái 1 nỗi là chả hiểu nó xài để làm j.
    Code:
    enum StackTag
        {
            None,         // giá trị mặc định là 0.
            BoldTag,      // 1
            ItalicsTag,   // 2
            HyperlinkTag, // và 3.
        };
    sau đó truy vấn là
    Code:
    StackTag.BoldTag
    không hiểu để làm j luôn
    có phải để so sánh ko các bác.
    thay vì việc chỉ có 2 giá trị true false như kiểu bool thì ta xài cái này tạo ra thêm mấy giá trị nữa để so sánh, có đúng thế ko zậy????

    cơ bản về nó thì ... here: http://www.itgatevn.com.vn/index.asp...id=44&id=20815

  2. #2
    Ngày gia nhập
    12 2007
    Bài viết
    116

    sau khi lượn vòng quanh xem vài ví dụ thì có thể hiểu thằng này là dạng giống một list<string> phải ko các bác
    Code:
    enum StackTag
        {
            None,         // giá trị mặc định là 0.
            a,      // 1
            b,   // 2
            c, // và 3.
        };
    in ra
    Code:
    StackTag tag = new StackTag.a;
    for(int i =0;i<3;i++)
    {
        system.print(tag.ToString());  
        tag++;
    }
    kết quả in ra sẽ là
    Code:
    a
    b
    c
    ngoài ra nó còn có thể so sánh
    Code:
    if(tag > StackTag.c)
    {
        system.print("reset");
    }
    mà thế cũng chẳng thấy có hiệu quả lắm vì mình hoàn toàn có thể xài list<string> hoặc string[] để thay thế mà... có ai có ý kiến j ko... chia sẻ cho mình với

  3. #3
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,918

    Vậy lúc bạn dùng switch statement thì sao nào ? bạn có dùng list< string > được không ? Với lại bạn nên nhớ rằng string là một đối tượng cỡ bự, list cũng chẳng nhỏ gì, dùng enum mình nghĩ tiết kiệm hơn nhiều chứ phải không nào ?
    Ví dụ:
    Visual C# Code:
    1. namespace Cards {
    2.     public enum Ranks {
    3.         Joker  = 0,
    4.         Ace    = 1,
    5.         Two    = 2,
    6.         Three  = 3,
    7.         Four   = 4,
    8.         Five   = 5,
    9.         Six    = 6,
    10.         Seven  = 7,
    11.         Eight  = 8,
    12.         Nine   = 9,
    13.         Ten    = 10,
    14.         Jack   = 11,
    15.         Queen  = 12,
    16.         King   = 13
    17.     }
    18. }
    19. ....
    20.  
    21.  
    22. public int MinValue {
    23.             get {
    24.                 int temp = 0;
    25.  
    26.                 foreach( Card c in cards ) {
    27.                     switch( c.Rank ) {
    28.  
    29.                         case Ranks.Jack:
    30.                         case Ranks.Queen:
    31.                         case Ranks.King:
    32.                             temp += 10;
    33.                             break;
    34.  
    35.                         default :
    36.                             temp += ( int )c.Rank;
    37.                             break;
    38.  
    39.                     }
    40.                 }
    41.  
    42.                 return temp;
    43.             }
    44.         }
    Và bạn chú ý ví dụ dùng list< > thì khi so sánh bạn phải dùng index list[ i ].... và cái này lúc đọc code sẽ khó hiểu hơn Enum nhiều.

  4. #4
    Ngày gia nhập
    12 2007
    Bài viết
    116

    ờ há một ý kiến tuyệt vời.... tuy nhiên hạn chế của enum là ko thêm biến hoặc thay đổi đc mà phải cố định từ đầu phải ko
    như kiểu List<> ta có List<object>.add(object)
    hoặc List<object>[2] = object;
    mà số lượng biến cũng cố định nữa

  5. #5
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,918

    Bạn nên hiểu Enum giống như advance constant chứ đừng hiểu nó như List< > hay ADT nào đó vì nó không phải là cấu trúc dữ liệu như mấy thằng kia. Mình đoán chắc bạn chưa học qua C++ nên mới hỏi thế này T_T !

  6. #6
    Ngày gia nhập
    02 2011
    Nơi ở
    Vô Gia Cư
    Bài viết
    269

    Mặc định kiểu enum trong C# dùng để làm gì?

    Thế mình có thể làm như thế này không?
    - tạo ra các tập hợp các định dạng cùng loại :
    + các định dạng nhạc; // mp3,aac,...
    + các file hình ảnh;// jpg,..
    + các file text;//doc,...
    ....
    - switch(string kiểu)
    case kiểu thuộc nhạc :
    //do something;
    case kiểu thuộc hình ảnh :
    //do something;
    ...

    Mình muốn sử dụng enum để tạo ra các tập hợp trên có được không? Và làm thế nào so sánh kiểu nằm trong tập hợp nào? Nếu không được thì có cách nào thực hiện ý tưởng trên không?

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

  1. Kiểu dữ liệu enum trong object-c?
    Gửi bởi nobeta911 trong diễn đàn Thắc mắc lập trình Objective-C
    Trả lời: 2
    Bài viết cuối: 29-12-2012, 11:18 AM
  2. Lập trình C Cho em hỏi về enum trong C
    Gửi bởi anhut trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 07-03-2012, 08:02 PM
  3. Trả lời: 5
    Bài viết cuối: 17-09-2011, 11:57 PM
  4. Bài tập C++ cách dùng hàm enum trong C/C++?
    Gửi bởi nhox31_lk trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 5
    Bài viết cuối: 01-04-2011, 10:52 PM
  5. Enum trong VS C++ sử dụng như thế nào?
    Gửi bởi nguyendima trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 2
    Bài viết cuối: 24-02-2010, 09:16 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