‫Và video này, chúng ta sẽ xem xét một số giao diện rất quan trọng mà bạn nên hiểu khi
‫bạn muốn trở thành một nhà phát triển cửa hàng nâng cao hơn.
‫Và đó là giao diện liệt kê AI cũng như giao diện liệt kê AI.
‫Vì vậy, bạn nên hiểu các giao diện trước khi xem video này, vì nếu không, một số khái niệm có thể sẽ
‫không có ý nghĩa đối với bạn.
‫Vì vậy, tôi thực sự khuyên bạn nên xem video giao diện mà chúng tôi phải cung cấp.
‫Được chứ.
‫Vì vậy, giao diện liệt kê AI là giao diện cơ sở cho nhiều bộ sưu tập trong C sharp và công việc của nó là
‫cung cấp một cách để lặp lại qua một bộ sưu tập.
‫Vì vậy, đây là lý do tại sao chúng ta có thể sử dụng cho mỗi vòng lặp để đi qua một danh sách hoặc một từ điển
‫vì chúng được kế thừa từ giao diện liệt kê.
‫Vì vậy, giao diện liệt kê bằng tiếng Anh đơn giản, khi lớp tập hợp triển khai giao diện
‫liệt kê AI, nó sẽ trở nên có thể đếm được và chúng ta có thể đếm từng phần tử trong đó riêng lẻ.
‫Vì vậy, có hai phiên bản khác nhau của giao diện liệt kê AI.
‫Một là nó hoạt động cho các tập hợp chung trong đó bạn có dấu ngoặc mở, dấu ngoặc đóng, và
‫sau đó là giao diện liệt kê AI cho các tập hợp không chung chung.
‫Vì vậy, bạn cũng nên hiểu tập hợp chung và không chung chung là gì.
‫Chúng có những ưu và nhược điểm nhất định, nhưng tôi cũng có một video cho điều đó.
‫Tôi hy vọng bạn đã xem nó trước khi xem video này vì nếu không nó hơi phức tạp.
‫Được chứ.
‫Vì vậy, hai cái mà chúng ta có ở đây, chúng ta hãy xem xét chúng.
‫Vì các tập hợp chung được giới thiệu sau các tập hợp không chung chung, bạn nên sử
‫dụng tập hợp chung.
‫Vì vậy, về cơ bản chúng là một phiên bản cải tiến, có thể nói như vậy.
‫Vì vậy, nếu bạn đang tạo một dự án mới, bạn nên sử dụng phiên bản chung vì tôi có thể
‫liệt kê cho các bộ sưu tập không chung chung cần áp dụng hoặc thực hiện quyền anh và mở hộp, về cơ bản là
‫chuyển đổi các loại đối tượng.
‫Và sau đây chúng tôi sẽ giải thích cách sử dụng giao diện tty có thể liệt kê được của AI.
‫Vì vậy, giao diện bộ sưu tập chung, chúng tôi sẽ không chuyển qua giao diện bộ sưu tập không chung
‫chung vì nó không được khuyến khích do quyền anh và unboxing kém hiệu quả hơn.
‫Vì vậy, bây giờ chúng ta hãy xem xét sự khác biệt giữa AI liệt kê và AI liệt kê.
‫Bạn có thể đã nghe những điều đó trước đây.
‫Vì vậy, giao diện liệt kê AI chứa một phương pháp duy nhất mà bạn phải triển khai khi triển khai giao diện này và chúng ta
‫sẽ thực hiện điều đó sau trong ví dụ cụ thể của chúng ta ở đây.
‫Vì vậy, nó có ý nghĩa hơn rất nhiều.
‫Vì vậy, phương thức get enumerate là phương thức mà bạn cần triển khai và nó trả về một đối tượng enumerator AI.
‫Vì vậy, phương thức này mà bạn cần triển khai khi bạn muốn sử dụng một AI có thể liệt kê cho lớp của
‫mình hoặc những gì bạn muốn triển khai nó cho lớp của mình, bạn cần có phương thức get enumerator này, sau đó trả về một kiểu
‫liệt kê AI.
‫Vì vậy, điều tra viên AI.
‫Cung cấp khả năng nhắc lại thông qua bộ sưu tập bằng cách hiển thị thuộc tính hiện tại trỏ vào đối
‫tượng mà chúng ta hiện đang ở trong bộ sưu tập.
‫Điều này phức tạp hơn rất nhiều so với khi chúng ta thực sự chạy điều này trong ví dụ cụ thể của chúng ta.
‫Vì vậy, chúng tôi sẽ xây dựng một ví dụ hiểu đầy đủ tất cả những điều này có nghĩa là gì.
‫Vì vậy, đây chỉ là để chuẩn bị cho bạn những gì bạn có thể mong đợi.
‫Được rồi, vậy hãy bắt đầu.
‫Cuối cùng thoát khỏi tất cả lý thuyết này, chúng ta hãy thực sự nhìn vào thực tế.
‫Vì vậy, chúng ta hãy tạo lớp nhỏ này có tên là dog.
‫Và tôi sẽ đặt nó vào cùng một tệp để giữ mọi thứ đơn giản.
‫Vì vậy, chúng tôi có lớp này được gọi là Dog với một cái tên và chúng tôi có Boolean này được gọi là Naughty Dog.
‫Vì vậy, về cơ bản chúng ta sẽ kiểm tra xem con chó có nghịch ngợm hay không.
‫Và dựa trên cơ sở đó, chúng tôi sẽ thưởng cho anh ấy.
‫Vì vậy, nếu anh ta không phải là một con chó nghịch ngợm, anh ta sẽ nhận được ít đối xử hơn nếu anh ta là một cậu bé ngoan hoặc một con chó ngoan.
‫Vì vậy, hàm tạo ở đây về cơ bản chỉ đặt hai giá trị đó.
‫Vì vậy, khi chúng ta tạo một đối tượng dog, chúng ta sẽ đặt cho nó một cái tên và một boolean, cho dù nó có
‫nghịch ngợm hay không.
‫Và sau đó, chúng tôi có phương pháp xử lý quà tặng này và điều này về cơ bản sẽ chỉ in ra con chó Woof nói.
‫Vì vậy, đối với mỗi món quà mà con chó được cho, nó sẽ nói Woof.
‫Vì vậy, về cơ bản, nếu nó là một con chó ngoan, bạn sẽ nhận được hai phần thưởng và nó sẽ di chuyển hai lần.
‫Và nếu nó là một con chó xấu hoặc một con chó nghịch ngợm, thì nó sẽ chỉ di chuyển một lần vì nó sẽ ít bị đối xử hơn.
‫Được chứ.
‫Vì vậy, bây giờ chúng ta có dock lớp này và bây giờ chúng ta có thể tiếp tục và tạo các đối tượng dog.
‫Vì vậy, chúng ta hãy có lớp khác này.
‫Giả sử chúng ta có một lớp khác sẽ sử dụng những con chó bên trong danh sách.
‫Vì vậy, chúng tôi có lớp học trú ẩn cho chó này.
‫Vì vậy, lớp học nơi trú ẩn cho chó này sẽ có một danh sách các loài chó.
‫Vì vậy, do đó chúng ta cần đảm bảo rằng chúng ta có điều này bằng cách sử dụng tập hợp hệ thống chung vì danh
‫sách là một tập hợp chung.
‫Vì vậy, ở trên cùng, bạn sẽ thấy rằng bây giờ bạn có điều này bằng cách sử dụng các bộ sưu tập hệ thống chung.
‫Được chứ.
‫Vì vậy, bây giờ chúng tôi đã có nơi trú ẩn cho chó này và chúng tôi có danh sách những con chó này trong nhà xây dựng của nơi
‫trú ẩn cho chó này, điều duy nhất mà chúng tôi sẽ làm là khởi tạo danh sách chó này với một loạt các con chó.
‫Vì vậy, chúng tôi có con chó Casper hoặc một con chó được gọi là Casper.
‫Anh ấy không phải là một con chó già, nhưng nếu là một con chó nghịch ngợm, Oreo không nghịch ngợm và Pixel cũng không nghịch ngợm.
‫Vì vậy, đừng hỏi tôi làm thế nào chúng tôi nghĩ ra những cái tên này, nhưng về cơ bản đó là cách chúng tôi sẽ gọi những con chó
‫đó.
‫Tất nhiên, bạn có thể làm cho toàn bộ ứng dụng này phức tạp hơn rất nhiều, nhưng ý tưởng của chúng tôi thực sự chỉ là sử dụng
‫danh sách những con chó này để lặp qua nơi trú ẩn cho chó, đi qua nơi trú ẩn dành cho chó, về cơ bản.
‫Và dựa trên việc một con chó ngoan hay không hay một con chó nghịch ngợm hay không, chúng tôi sẽ cho nó một
‫hoặc hai phần thưởng.
‫Vì vậy, bây giờ chúng ta hãy chuyển sang phương pháp chính của chúng ta, bởi vì đó là nơi khởi đầu của ứng dụng của
‫chúng ta.
‫Và lúc này, chúng ta hãy tiến hành tạo một nơi trú ẩn cho chó ở đây.
‫Được rồi.
‫Vì vậy, chúng tôi có nơi trú ẩn cho chó này được gọi là Shelter, và nó sẽ là một nơi trú ẩn mới cho chó.
‫Vì vậy, chúng tôi khởi tạo nó ngay lập tức để chúng tôi có thể sử dụng đối tượng trú ẩn này vì đối tượng trú
‫ẩn sẽ chứa một danh sách các con chó.
‫Đúng.
‫Vì vậy, bây giờ những gì chúng tôi muốn làm là chúng tôi muốn lặp lại danh sách và kiểm tra xem chúng tôi có muốn thưởng cho chúng
‫hay không.
‫Vì vậy, chúng ta hãy tạo một cho mỗi tab ở đây như vậy để chuẩn bị cho chúng ta.
‫Vì vậy, nó là gì mà chúng ta sẽ trải qua?
‫Chà, chúng ta đang trải qua một con chó.
‫Và chúng ta sẽ gọi một con chó.
‫Vì vậy, mỗi mục bên trong danh sách sẽ là một con chó.
‫Và sau đó bộ sưu tập mà chúng tôi muốn đi qua, trên thực tế, sẽ là nơi trú ẩn.
‫Giống.
‫Vì vậy, bây giờ chúng tôi có một vấn đề nhỏ.
‫Khi chúng ta di chuột qua nó, chúng ta nói rằng chúng ta thấy ở đây tên của bộ sưu tập hoặc mảng
‫để lặp qua là nơi trú ẩn, nhưng đối với mỗi câu lệnh không thể hoạt động trên các biến của loại nơi trú ẩn
‫cho chó vì nơi trú ẩn cho chó không chứa một phiên bản công khai hoặc định nghĩa mở rộng cho lấy điều tra viên.
‫Được rồi, vậy là chúng ta đã có được điều tra viên này.
‫Vậy điều đó có ý nghĩa gì?
‫Điều này có nghĩa là chúng ta cần triển khai giao diện mà tôi liệt kê ngay tại đây cho nơi trú ẩn dành cho chó của chúng ta vì nơi trú ẩn cho chó này
‫có một danh sách mà chúng ta muốn lặp lại.
‫Đúng?
‫Bởi vì nếu bạn nhìn vào nó, nơi trú ẩn, tốt, nơi trú ẩn cho chó của chúng tôi, đó là nơi trú ẩn mà chúng tôi muốn
‫lặp lại.
‫Và để làm cho nó có thể lặp lại, chúng ta cần triển khai AI có thể liệt kê ở đây.
‫Và chúng ta muốn liệt kê loại đối tượng nào?
‫Trong trường hợp của chúng ta, nó sẽ là những con chó.
‫Vì vậy, chúng tôi muốn có thể đi qua những con chó bên trong nơi trú ẩn dành cho chó bởi vì, chúng tôi có danh
‫sách những con chó này và nó được khởi tạo ở đây trong trình xây dựng nơi trú ẩn cho chó.
‫Và chúng tôi muốn đảm bảo rằng chúng tôi có thể xem qua tất cả chúng và làm điều gì đó với những con chó,
‫chẳng hạn như cưng nựng chúng hoặc trong trường hợp của chúng tôi là đãi chúng.
‫Vì vậy, một khi bạn thực hiện điều này và bạn đi lên đây, lỗi sẽ biến mất.
‫Vì vậy, đột nhiên nó ổn bởi vì, nơi trú ẩn của chúng tôi, là nơi trú ẩn cho chó, bây giờ tuân theo các hướng dẫn
‫mà chúng tôi đã đưa ra cho chúng tôi rằng nó cần phải thực hiện nó.
‫Tôi liệt kê ở đây.
‫Vì vậy, đây là tài liệu chung mà tôi có thể liệt kê vì chúng tôi có tài liệu này ngay tại đây.
‫Đúng?
‫Bởi vì nó không phải cái này.
‫Đó là một trong những loại mà chúng tôi đang đưa ra cho nó.
‫Nhưng bây giờ, một khi chúng ta di chuột qua nó, chúng ta thấy chúng ta gặp một lỗi khác.
‫Nó cho biết nơi trú ẩn doc không triển khai thành viên giao diện.
‫I enumerable doc get enumerator và I enumerable get enumerator để chúng ta có thể đưa chúng vào đó theo cách thủ công.
‫Nhưng cái hay của việc sử dụng ID là ID có thể làm rất nhiều việc cho chúng tôi, vì vậy bạn có thể nhấp vào hiển thị các
‫bản sửa lỗi tiềm năng và sau đó nhấp vào triển khai tất cả các thành viên một cách rõ ràng và sau đó nó sẽ thêm không gian tên bộ
‫sưu tập cho chúng tôi và nó sẽ mất quan tâm đến việc thêm hai phương pháp đó cho chúng tôi hoặc hai thành viên đó.
‫Vì vậy, khi chúng tôi nhấp vào đây, bạn sẽ thấy rằng lỗi này sẽ biến mất.
‫Và nếu chúng ta cuộn xuống sâu hơn, bạn sẽ thấy rằng bây giờ chúng ta đang trả về một điều tra viên kiểu doc và một
‫tập hợp điều tra viên loại I không chung chung.
‫Vì vậy, bây giờ chúng tôi đã không thực hiện nó.
‫Đó là lý do tại sao chúng ta có ngoại lệ ném mới không được triển khai x này ở đây.
‫Vì vậy, chúng ta cần thay đổi điều đó ở đây.
‫Bây giờ chúng ta có thể triển khai những gì sẽ xảy ra với phương thức get enumerator sau khi nó được gọi.
‫Vì vậy, để khắc phục nó, những gì chúng ta sẽ nói ở đây chỉ là quay trở lại.
‫Những con chó trong danh sách của chúng tôi, những con chó của chúng tôi chấm nhận được điều tra viên giống như vậy.
‫Và đó sẽ là cách triển khai vì nơi trú ẩn cho chó của chúng tôi hiện đang triển khai giao diện có thể đếm được.
‫Và danh sách của chúng tôi ở đây, trên thực tế, là A, nếu bạn di chuột qua nó, một danh sách là một danh sách chung.
‫Và bây giờ chúng ta có thể lấy những con chó trong danh sách này và chúng ta có thể có được điều tra viên cho mỗi lần lặp lại mà chúng ta
‫cho mỗi nhóm sẽ trải qua.
‫Vì vậy, về cơ bản nó sẽ trả lại từng con chó.
‫Và bây giờ những gì chúng ta có thể làm là chúng ta thực sự có thể sử dụng con chó trong mỗi vòng lặp ở đây.
‫Vì vậy, về cơ bản điều đó có nghĩa là bây giờ chúng ta có thể tiếp tục và kiểm tra xem con chó có nghịch ngợm không.
‫Vì vậy, không phải chó chấm là nghịch ngợm.
‫Nếu đúng như vậy, về cơ bản, điều đó có nghĩa là nếu con chó không nghịch ngợm, chúng ta sẽ gọi phương pháp,
‫đưa ra món ăn và chúng tôi sẽ cho nó hai món.
‫Và ngược lại, nếu nó nghịch ngợm, vì chúng ta không thể không thưởng thức, chúng ta chỉ yêu chó quá nhiều.
‫Chúng tôi sẽ cho họ một điều trị như vậy.
‫Và tại thời điểm này, chúng ta có thể chạy ứng dụng của mình.
‫Và chúng ta sẽ thấy.
‫Casper đã nói Wolf hai lần, bởi vì anh ta là một con chó ngoan, đánh hơi là một con chó nghịch ngợm, vì vậy anh ta chỉ
‫nhận được một món quà và anh ta nói, gâu gâu, một khi Oreo làm điều đó hai lần và các pixel cũng di chuyển hai lần.
‫Được rồi.
‫Và về cơ bản đó là cách bạn có thể làm cho lớp của mình làm theo hướng dẫn hoặc triển khai AI có thể liệt kê để
‫bạn có thể lặp qua một danh sách bằng cách sử dụng vòng lặp for each, chẳng hạn như chúng tôi có ở đây.
‫Bây giờ, bạn có thể tự hỏi, tại sao chúng ta không triển khai bộ liệt kê cổng với AI có thể liệt kê,
‫một cái không phải là chung chung?
‫Chà, đó là bởi vì chúng tôi không sử dụng một ví dụ không chung chung và nơi trú ẩn cho chó của
‫chúng tôi cũng không phải là không chung chung, nhưng chỉ là bạn cần triển khai nó khi sử dụng giao diện liệt kê AI vì nếu không, nếu bạn
‫loại bỏ nó, chúng tôi sẽ một cảnh báo ở đây một lần nữa.
‫Bạn thấy đây, chúng tôi thực sự đang mắc lỗi, vì vậy chúng tôi cần đảm bảo rằng chúng tôi cũng có phương pháp này
‫trong đó.
‫Được rồi.
‫Vì vậy, đó là nó cho video này.
‫Và video tiếp theo, chúng ta sẽ xem xét một ví dụ khác, nơi chúng ta sẽ tận dụng lợi thế của mắt, thậm
‫chí còn nhiều hơn thế nữa.
‫Vì vậy, đây chỉ là một chút giới thiệu.
‫Tôi biết chủ đề này khá phức tạp và phức tạp, nhưng chúng ta sẽ tận dụng chúng nhiều hơn một
‫chút.
‫Và bây giờ, nhân tiện, chỉ là một bản tóm tắt ngắn gọn ở đây.
‫Khi nào thì nên sử dụng giao diện liệt kê AI?
‫Chà, bạn nên sử dụng nó khi bộ sưu tập của bạn đại diện cho một bảng cơ sở dữ liệu lớn.
‫Vì vậy, bạn không muốn sao chép toàn bộ nội dung vào bộ nhớ và gây ra các vấn đề về hiệu suất trong ứng dụng của mình vì cơ sở
‫dữ liệu có thể rất lớn, phải không?
‫Nó có thể có hàng triệu trên hàng triệu mục nhập.
‫Và bạn không muốn phải tải toàn bộ nội dung để lặp lại nó, nhưng bạn chỉ muốn
‫tải bao nhiêu tùy theo yêu cầu của quy trình hiện tại, bất cứ điều gì bạn muốn thực thi.
‫Và khi nào bạn không nên sử dụng giao diện liệt kê AI?
‫Chà, khi bạn cần kết quả ngay lập tức và bạn có thể thay đổi, chỉnh sửa các đối tượng sau
‫này.
‫Trong trường hợp này, tốt hơn là sử dụng một mảng hoặc một danh sách.
‫Vì vậy, khi bạn muốn có thể thay đổi hoặc chỉnh sửa các đối tượng sau này và bạn không cần kết quả ngay lập tức, hãy
‫sử dụng một mảng hoặc một danh sách.
‫Nếu không, hãy sử dụng AI có thể đếm được vì nó sẽ hiệu quả hơn.
‫Được rồi.
‫Vì vậy, đó là nó cho video này.
‫Hẹn gặp lại các bạn trong những bài tiếp theo.