C# 3.0 Design Patterns PHẦN 7

Khi khởi tạo một bộ sưu tập, chúng tôi phù hợp với giá trị với cấu trúc cần thiết. Nếu các mục trong bất kỳ kích thước của cấu trúc là các đối tượng, mới là cần thiết, và chúng tôi mở một tập hợp các dấu ngoặc. Nếu những giá trị có sẵn, họ có thể được đưa vào, như trong: | This excerpt uses two interesting C features initializing and enumerated types. We looked at initializing in Chapter 3 but I ll repeat the information here more specifically for collections. C Feature Initializing Collections In initializing a collection we match the values with the required structure. If the items in any dimension of the structure are objects new is required and we open another set of brackets. If values are available they can be inserted as in new Structure Limit 500 Positions 10 Otherwise an object constructor will do as in new List Handler If the structure is local to a method its type can be inferred from the initialization and the var declaration is permitted as in var structure new Dictionary Levels Structure cf. C Language Specification Version September 2007 Section Both of the collections use an enumerated type Levels. It is declared as enum Levels Manager Supervisor Clerk Because enum constants can be associated with values we could include the limits for the handler types with them as in enum Levels Manager 9000 Supervisor 4000 Clerk 1000 We ll revisit this idea in the upcoming Exercises section. Having set up the structure we then create a collcction of treree lists called handlersAtLevel. Each list contains the people who are at the level indicated exactly as in Figure 8-4. The loop to create the handlers requiring less writing is foreach Levels level in typeof Levels for int i 0 i structure level .Positions i handlersAtLevel level .Add new Handler i level _ Thus for each level we pick up from the structure chart the number of positions required and instantiate that number of handlers passing through an identifier and the level. Notice that this way of setting up the handers differs from the theory code in Example 8-1 because there is no direct link to another handler the link is deduced from the level plus a random number and found in the lists of handlersAtLevel. The next .

Không thể tạo bản xem trước, hãy bấm tải xuống
TÀI LIỆU MỚI ĐĂNG
Đã phát hiện trình chặn quảng cáo AdBlock
Trang web này phụ thuộc vào doanh thu từ số lần hiển thị quảng cáo để tồn tại. Vui lòng tắt trình chặn quảng cáo của bạn hoặc tạm dừng tính năng chặn quảng cáo cho trang web này.