2012-05-15 42 views

Trả lời

17

Điều đó không có ý nghĩa.
Tất cả các loại tham chiếu, bao gồm Func<...>, có thể là null.

Loại dễ vỡ áp dụng cho các loại giá trị (struct s), không thể thông thường là null.

+0

@ bto.rdz: Huh? Javascript không có thực thi loại nào cả. – SLaks

3

Func là đại biểu là loại tham chiếu. Điều này có nghĩa là nó đã được vô hiệu (bạn có thể truyền null cho một phương thức).

1

Func -> Đóng gói một phương thức trả về một kiểu xác định bởi tham số chung

Nếu kiểu trả về là void, còn có một đại biểu khác nhau (hành động)

Action -> Đóng gói một phương pháp mà không trả lại một giá trị.

Nếu bạn yêu cầu Func chấp nhận tham số có thể chấp nhận null (loại có thể loại bỏ) hoặc yêu cầu Func trả về giá trị có thể là rỗng (loại có thể nhập), không có giới hạn.

Ví dụ.

Func<int?, int?, bool> intcomparer = 
    (a,b)=> 
    { 
    if(a.HasValue &&b.HasValue &&a==b) 
     return true; 
     return false; 
    } ; 

    Func<int?, int?, bool?> nullintcomparer = 
    (a,b)=> 
    { 

    if(a.HasValue &&b.HasValue &&a==b) 
     return true; 
    if(!a.HasValue || !b.HasValue) 
     return null; 
     return false; 
    } ; 

    var result1 = intcomparer(null,null); //FALSE 
    var result2 = intcomparer(1,null); // FALSE 
    var result3 = intcomparer(2,2); //TRUE 


    var result4 = nullintcomparer(null,null); // null 
    var result5 = nullintcomparer(1,null); // null 
    var result6 = nullintcomparer(2,2); //TRUE 
+1

Anh ấy không nói về kiểu trả về. – SLaks

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