Đánh giá, nhận xét, review các công ty tuyển dụng
Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 11 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?

  7. #7
    Ngày gia nhập
    07 2012
    Bài viết
    25

    Tùy thôi. cơ bản thì biết càng nhiều càng tốt. còn giỏi cái gì thì dùng cái đấy

  8. #8
    Ngày gia nhập
    08 2014
    Nơi ở
    USA
    Bài viết
    71

    Enum mục đích chánh là Intellisense. Nếu không thích sài Enum có thể sài const int variable, nhưng khi làm enum Intellisense của Visual Studio very good
    www.hoidapcomputer.com Live to Code | www.cmtrs.com

  9. #9
    Ngày gia nhập
    04 2010
    Nơi ở
    HN
    Bài viết
    3

    Trích dẫn Nguyên bản được gửi bởi webshot Xem bài viết
    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
    Theo mình biết thì khi mình đánh số thứ tự cho một danh sách nào đó, vì là số nên mình sẽ khó nhớ được số đó nó định danh cho cái gì. Ví dụ mình thiết lập giá trí 1 là file .txt, 2 là file .doc, 3 là file .xls chẳng hạn nhưng khi so sánh hay kiểm tra để biết nó là file .doc thì mình phải gán nó bằng 2 nên rất khó hiểu, sau này đọc code cũng chẳng biết 2 là cái gì nếu ko comment cẩn thận. Sử dụng enum khi kiểm tra mình không phải quan tâm nó là số nào nữa mà chỉ cần so sánh với tên đại diện của nó ra theo kiểu enmExtension.doc là được. Sử dụng enum sẽ giúp cho người lập trình và người bảo trì sẽ dễ dàng hơn khi đọc code.
    VD enum :
    enum enmExtension
    {
    ppt, // giá trị mặc định là 0.
    txt, // 1
    doc, // 2
    xls, // và 3.
    };

    Mong có thể giúp được bạn phần nào mặc dù mình viết hơi lủng củng.
    Lỗi lại sửa, sửa lại lỗi

  10. #10
    Ngày gia nhập
    11 2013
    Nơi ở
    TP HCM
    Bài viết
    127

    enum (C# Reference) <= có định nghĩa, có diễn giải, có cả ví dụ cụ thể. Muốn biết chính xác nó là gì sao không vào nhà phát hành ra nó mà tìm hiểu nhĩ?

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