2009-09-21 32 views
14

Tôi kiểm tra các tham số của phương thức C# bằng cách sử dụng sự phản chiếu. Phương thức này có một số tham số và cho các kiểu này, tôi lấy lại các kiểu, có IsByRef = true. Ví dụ, nếu tham số được khai báo là "out string xxx", tham số có kiểu System.String &. Có cách nào để chuyển đổi System.String & quay lại System.String không? Các giải pháp nên tất nhiên không chỉ làm việc cho System.String nhưng đối với bất kỳ loại.Chuyển đổi loại C# theo tham chiếu thành loại không khớp theo tham chiếu

+2

tâm nếu tôi thay đổi tiêu đề từ "tham khảo" để "bằng cách tham chiếu"? –

+0

Không, không sao cả. – Achim

Trả lời

24

Sử dụng Type.GetElementType().

Demo:

using System; 
using System.Reflection; 

class Test 
{ 
    public void Foo(ref string x) 
    { 
    } 

    static void Main() 
    { 
     MethodInfo method = typeof(Test).GetMethod("Foo"); 
     Type stringByRef = method.GetParameters()[0].ParameterType; 
     Console.WriteLine(stringByRef); 
     Type normalString = stringByRef.GetElementType(); 
     Console.WriteLine(normalString);   
    } 
} 
Các vấn đề liên quan