У меня есть параметр out. Можно ли передать это как отражение? Можете ли вы привести несколько примеров, как это сделать?как передать/передать параметр как отражение? - расширяемость визуальной студии C#
4
A
ответ
13
Я не уверен, что это связано с расширяемостью VS, но это, конечно, можно вызвать метод с out
параметром при отражении и выяснить значение параметра out
впоследствии:
using System;
using System.Reflection;
class Test
{
static void Main()
{
MethodInfo method = typeof(int).GetMethod
("TryParse", new Type[] { typeof(string),
typeof(int).MakeByRefType() });
// Second value here will be ignored, but make sure it's the right type
object[] args = new object[] { "10", 0 };
object result = method.Invoke(null, args);
Console.WriteLine("Result: {0}", result);
Console.WriteLine("args[1]: {0}", args[1]);
}
}
Обратите внимание, как вам нужно сохранить ссылку на массив, используемый для передачи аргументов методу, - вот как вы получите значение параметра out
после этого. То же самое верно для ref
.
Но что, если я не знаю тип второго аргумента? Это мой вопрос здесь: http://stackoverflow.com/questions/33338843/dynamically-declare-a-type-for-a-method-out-parameter – alpinescrambler