Ваш метод в любом случае не меняется value
- почему вы передаете его по ссылке? Это может иметь смысл, но это не совсем понятно для меня. Обратите внимание, что предоставленный вами пример кода не будет компилироваться в любом случае, так как ref
аргументы должны быть точно того же типа, что и параметр.
(Кроме того, знаете ли вы, что C # 4.0 и .NET 4.0 будут иметь встроенную поддержку позднего связывания? Скорее всего, языковая версия будет проще в использовании, чем версия для библиотеки. Вы уверены, что в этот момент стоит потратить время на библиотеку?)
РЕДАКТИРОВАТЬ: Код, который вы предоставили, действительно не скомпилируется. Вы не получаете бокс для ref
параметров, именно потому, что аргументы и типы параметров должны быть абсолютно одинаковыми. Вот пример кода, чтобы доказать это:
public class Test
{
static void Main()
{
int i;
Foo(ref i); // Won't compile - error CS1502/1503
}
static void Foo(ref object x)
{
}
}
Если ваш текущий код компилируется , то это не тот код, который вы указали в вопросе. Возможно, у вас есть другая перегрузка для AddParameter
, которая принимает ref int
?