Я изучаю параметры метода C# с использованием отражения. Метод имеет некоторые параметры, и для них я возвращаю типы, у которых IsByRef = true. Например, если параметр объявлен как «out string xxx», параметр имеет тип System.String &. Есть ли способ конвертировать System.String & обратно в System.String? Разумеется, решение должно работать не только для System.String, но и для любого типа.Преобразуйте ссылочный тип C# в соответствующий не-ссылочный тип
14
A
ответ
24
Использование Type.GetElementType()
.
Демо:
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);
}
}
возражаете, если я изменить название из «ссылки» на «по ссылке»? –
Нет, не проблема для меня. – Achim