2014-04-25 17 views
6

Tôi đã đọc trên partial methods vì chúng sẽ trở nên quan trọng hơn rất nhiều trong C# -6/Visual Studio 2013 update 2 kết hợp với Windows Universal Projects. Trong khi đọc tài liệu tôi đọc giới hạn kỳ lạ này về chữ ký của các phương pháp từng phần:Tại sao các phương pháp từng phần hỗ trợ ref nhưng không tham số

Phương pháp một phần có thể có tham số nhưng không tham số.

Tôi không hiểu lý do cho giới hạn này. Vì phương pháp một phần về cơ bản là một phương pháp bình thường với chữ ký và thực hiện trong các tệp khác nhau, lý do kỹ thuật nào sẽ có để không hỗ trợ các tham số? Hoặc bất kỳ lý do nào khác cho giới hạn này cho vấn đề đó. Đặc biệt là vì chúng hỗ trợ các tham số ref là very similar.

Trả lời

8

Nếu một phương pháp từng phần được khai báo nhưng không được triển khai, nó sẽ không được gọi.

Điều này có nghĩa là bất kỳ thông số out nào đều không được chỉ định, điều này không được phép.

Đây không phải là vấn đề với thông số ref vì chúng phải được chỉ định trước khi chúng được chuyển đến phương pháp, vì vậy chúng được gán chắc chắn ngay cả khi phương thức không được gọi.

+0

Tôi không biết tất cả các cuộc gọi đến các phương thức từng phần đều bị xóa. Đó là khá đáng sợ thực sự. Cảm ơn bạn về thông tin! –

0

Làm cho tinh thần, nếu bạn nhìn vào chi tiết cần được chú ý khi thực hiện các phương pháp từng phần:

Triển khai phương pháp một phần là tùy chọn.

Biến ngoài không bao giờ được gán giá trị trong khi biến ref luôn được gán giá trị. Hãy xem xét, trường hợp khi phương thức một phần không được triển khai, chúng tôi sẽ có một biến chưa được gán. Không có vấn đề gì xảy ra cho một biến ref vì nó có một số giá trị được gán.

Do đó, các biến không được hỗ trợ vì biến ngoài có nghĩa là giá trị đang được trả về.

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