2008-12-03 19 views
6

Với tôi ít nhất, lớp Pair là một lớp học đa mục đích. Vậy tại sao Microsoft đưa nó vào không gian tên System.Web.UI?Tại sao cặp trong System.Web.UI?

Có lý do nào khiến bộ não nhỏ bé của tôi không thể hiểu được?

Cảm ơn.

Trả lời

3

Tôi không nghĩ bạn sẽ tìm được lý do chính đáng. Có vẻ như đây là lần đầu tiên được tạo ra bởi nhóm web, vì vậy họ đã làm cho nó trong không gian tên/lắp ráp của họ. Họ cũng đã thêm LinkDemand cho AspNetHostingPermission, điều này thật không may.

Về mặt của nó "sử dụng mong đợi," MSDN nói

[Các Pair lớp] là một lớp tiện ích được sử dụng theo nhiều cách khác nhau trong suốt ASP.NET, chẳng hạn như trong trang nhiệm vụ quản lý nhà nước hoặc trong phần xử lý cấu hình.
...
Lớp Cặp có thể được sử dụng theo một số cách trong triển khai kiên trì trạng thái trang. Cách sử dụng phổ biến nhất là vùng chứa cho cả bộ sưu tập ViewStateControlState. Trong trường hợp này, thuộc tính First được sử dụng cho ViewStateSecond cho ControlState.

+0

Tôi luôn có ấn tượng này là sau khi suy nghĩ, điều mà nhóm không gian tên web.ui muốn, nhưng không có khả năng đưa nó vào không gian tên hệ thống. Đó là thứ gì đó luôn luôn ăn vào tôi, và tôi đã tự hỏi liệu có lý do hợp lý nào mà tôi không thể nhìn thấy. –

+0

Phát triển Silo'd ở mức tồi tệ nhất :( – ShuggyCoUk

5

Nó được sử dụng để tuần tự hóa viewstate (cùng với người anh em họ của nó Triplet).

Tôi đoán rằng lý do chúng không phải là một phần của thư viện cơ sở (mặc dù không có gì cụ thể về ASP.NET) là chúng không hữu ích vì chúng không được phân loại.

Để bao gồm cặp và ba lô không được phân loại trong thư viện cơ sở, có thể được xem là chương trình "không cần thiết" đáng khích lệ.

Tuple đã nhập có thể hữu ích, mặc dù (và tôi nghĩ F # có chúng). Tôi nghĩ rằng các loại ẩn danh bao gồm hầu hết các trường hợp sử dụng cho các bộ dữ liệu khác lạ.

+0

Tôi có thể hiểu tại sao bạn có thể muốn sử dụng nó trong một webapp, nhưng tại sao không làm cho nó có sẵn trong thư viện? Ví dụ, tại sao tôi không thể sử dụng nó trong một DLL cơ bản? –

+0

@John MacIntyre: Bạn có thể sử dụng nó trong một DLL cơ bản, bạn chỉ cần bao gồm một tham chiếu đến hệ thống System.Web.UI. –

+0

Tôi nhận ra rằng, nhưng nếu DLL đã được sử dụng cho một ứng dụng giao diện điều khiển ví dụ, không có vẻ lạ để có một sự phụ thuộc vào một hội đồng ui web? Thực sự không nên nó chỉ trong không gian tên System? –

0

Thiên Chúa cấm chúng ta nên có Cặp được nhập nhẹ hơn từ điển và có thể được nhập vào danh sách đã nhập để có thể lập chỉ mục :). Tất nhiên việc tạo ra một trong số đó là không đau, nhưng tại sao.

3

Điều này không trả lời trực tiếp câu hỏi, nhưng trong .NET 4 bạn có thể và có lẽ nên sử dụng Tuple.

Để trả lời câu hỏi, tôi tin rằng việc đặt Pair vào System.Web.UI và Microsoft đã cố gắng giải quyết sai lầm này với sự ra đời của lớp Tuple.

Các vấn đề liên quan