2013-04-05 50 views
6

Giá trị mặc định của biến được khai báo là động, ví dụ: private dynamic banana;?Giá trị mặc định của loại động?

Tôi có thể dựa vào chức năng default() khi loại được xác định khi chạy không?

Lý do tôi cần tìm giá trị mặc định là tôi khai báo thành viên động của lớp mà tôi muốn đặt một lần (nhưng không phải là readonly), sau đó sử dụng nó nhiều lần.

Làm cách nào để kiểm tra xem biến động đã được đặt thành bất kỳ giá trị nào khác ngoài giá trị mặc định mà không biết loại thời gian chạy có khả năng là gì?

Google không đưa ra điều gì về điều này: S

Xin cảm ơn trước.

+1

Bạn có thể kiểm tra loại bằng 'mặc định (dyanmic.GetType())' – gdoron

+0

tại sao bạn không sử dụng thuộc tính chỉ đọc của trường Động và kiểu phản đối kiểu đối tượng? Bằng cách đó bạn có thể null kiểm tra lĩnh vực sao lưu. –

+0

@AkashKava, tôi không đặt giá trị trong hàm tạo nên tôi không thể sử dụng chỉ đọc:/ – Sinker

Trả lời

5

Đó là null.

dynamic blah; 
Console.Write(blah); // crash 
Console.Write(blah.GetType()); // NullRef 

.. ý bạn là gì?

+1

'Console.Write' không bị lỗi khi được truyền' null', nó chỉ đơn giản là in không có gì. http://msdn.microsoft.com/en-us/library/zcwe8sfx.aspx –

+0

> @EdS., Bạn nhận được lỗi sau: > {"Cuộc gọi không rõ ràng giữa các phương thức hoặc thuộc tính sau: 'System.Console .Write (string) 'và' System.Console.Write (char []) '"} – Sinker

+4

@Sinker: Đó không phải là sự cố –

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