Khi tôi hiểu mặc định (đối tượng) trong đó 'đối tượng' là bất kỳ loại tham chiếu nào luôn trả về giá trị rỗng, nhưng tôi có thể chỉ định mặc định là gì không? Ví dụ, tôi muốn mặc định (object) == new object();Chỉ định giá trị mặc định cho loại tham chiếu
Trả lời
số default(type)
sẽ luôn luôn trở lại điều tương tự - một "zero' ed out "phiên bản của loại đó. Đối với một kiểu tham chiếu, đây là một xử lý đối với một đối tượng luôn được đặt với một giá trị bằng 0 - tương đương với null
. Đối với một loại giá trị, đây luôn là cấu trúc với tất cả các thành viên được đặt thành 0.
Không có cách nào để ghi đè hành vi này - đặc tả ngôn ngữ được thiết kế theo cách này.
Edit: Như khi viết phản hồi:
Chỉ cần để có thể nói
FirstOrDefault()
và không bao giờ có được một null.
Tôi không khuyến khích điều này trong mọi trường hợp. Người dùng mong đợi FirstOrDefault()
để trả lại null
về lỗi. Sẽ tốt hơn nếu bạn viết phương pháp mở rộng của riêng mình:
static T FirstOrNewInstance<T>(this IEnumerable<T> sequence) where T : class, new()
{
return sequence.FirstOrDefault() ?? new T();
}
Xin lỗi, tôi không phải là Jon Skeet ...
Nhưng dù sao, câu trả lời là "không có bạn có thể không phải là"
Thông thường Jon Skeet giải thích lý do tại sao (hoặc tại sao không phải trong trường hợp này) :) – PostMan
@PostMan, như tôi đã nói, tôi không phải là Jon Skeet;). Dù sao, tôi không nghĩ có bất cứ điều gì để giải thích ở đây ... nó chỉ là không thể. –
Chỉ cần làm cho nó lên, bạn sẽ được tốt :) Nhưng có, tôi đồng ý, không có lời giải thích khác hơn bạn không thể. (ngoài quyết định thiết kế) – PostMan
- 1. Cách chỉ định giá trị mặc định cho VARIANT_BOOL?
- 2. Truyền các loại giá trị bất biến theo tham chiếu theo mặc định
- 3. Xác định ràng buộc loại giao diện chung cho giá trị và loại tham chiếu
- 4. DependencyProperty Giá trị mặc định
- 5. Giá trị mặc định cho tham số chức năng?
- 6. Giá trị mặc định của loại động?
- 7. C#, giá trị tham số mặc định cho IntPtr
- 8. giá trị chung Mặc định
- 9. params Tham số với giá trị tham số mặc định
- 10. Tại sao không thể chỉ định giá trị mặc định của tham số Varala varargs?
- 11. Chỉ định giá trị cho các loại được liệt kê
- 12. Oracle: chỉ định giá trị mặc định cho cột kiểu đối tượng
- 13. Con trỏ qua C++ bằng cách tham chiếu và gán giá trị mặc định
- 14. Làm rõ hướng dẫn sử dụng PHP; giá trị mặc định được chuyển bởi tham chiếu
- 15. tham chiếu giá trị điều tra với chỉ mục được chỉ định
- 16. Giá trị và các loại tham chiếu
- 17. RingtonePreference Giá trị mặc định
- 18. C# - trình bao bọc tham chiếu cho loại giá trị
- 19. Phương pháp giá trị mặc định mảng tham số
- 20. giá trị loại bỏ mặc định từ một đối tượng
- 21. Chỉ định đối số tham chiếu cho biến cục bộ
- 22. làm các câu lệnh ném bắt mặc định trong C++ qua giá trị hoặc tham chiếu
- 23. DropdownListFor giá trị mặc định
- 24. Kiểm tra giá trị mặc định bằng các loại chung
- 25. Giá trị mặc định cho hàm tạo thuộc tính?
- 26. Giá trị mặc định của tham số chức năng
- 27. đối tượng loại tham chiếu loại giá trị trong javascript
- 28. Facelets: ui: param giá trị mặc định
- 29. GetPrivateProfileInt- chỉ đọc các giá trị mặc định
- 30. định vị và loại bỏ các giá trị không được tham chiếu trong strings.xml
Không, không thể. Bạn có thể cho chúng tôi biết mục tiêu cuối cùng ở đây không, tức là tại sao bạn muốn tính năng này? – Ani
No. Và tại sao bạn cần phải làm điều đó? Nếu đối tượng là null, chỉ cần gán một đối tượng mới! –
Chỉ để có thể nói FirstOrDefault() và không bao giờ nhận được một null. Đoán tôi sẽ chỉ viết một phương pháp mở rộng mới sau đó. –