2012-03-31 34 views
9

Tôi không thể nhận được TryGetValue để làm việc vì một số lý do.Đối sánh phương thức quá tải tốt nhất có một số đối số không hợp lệ

Dictionary<String,String> testdict = new Dictionary<String,String>(); 
String teststr = "test"; 
if(testdict.TryGetValue(teststr,out value)) 
{ 
    //Ladida 
} 

Lỗi nhận:

The best overloaded method match for 'System.Collections.Generic.Dictionary<string,string>.TryGetValue(string, out string)' has some invalid arguments 

bất cứ ai có thể cho tôi biết những gì sai với mã của tôi?

+2

Giá trị 'được xác định' ở đâu? –

+3

Có vẻ như * giá trị * không phải là biến của chuỗi loại. Chúng tôi không thể nhìn thấy nó. –

Trả lời

8

Thêm dòng này sau khi tạo từ điển:

String value = ""; 
+0

Điều đó đã làm điều đó, cảm ơn bạn! – natli

2

Có vẻ như vấn đề là value không được nhập đúng vào string. Đây là lý do duy nhất khiến bạn gặp phải lỗi cụ thể đó. Bạn cần phải thay đổi kiểu giá trị cho string hoặc khai báo một biến mới của loại string để sử dụng trong TryGetValue

0

Có lẽ một cái gì đó như thế này:

Dictionary<String,String> testdict = new Dictionary<String,String>(); 
string theValueYouAreTryingFor = "test"; 
string theValueYourGetting; 
if(testdict.TryGetValue(theValueYouAreTryingFor,out theValueYourGetting)) 
{ 
    //If the value is in the Dictionary 
} 
Các vấn đề liên quan