我创建了一个泛型类型来充当指针,以便我可以通过引用传递。(也许有一种更简单的方法可以做到这一点,但我想强调我这样做是为了了解更多关于泛型和通过引用传递的信息,如果这有意义的话,这不是完成任务的最有效方式。)
这是我为泛型类型编写的代码
class GenericPointer<T> {
public T item;
public void setItem(T i){ item = i; }
public T getItem(){ return item; }
}
在我的程序中,我创建了一个名为“intPointer”的此类实例。值 143 是任意的。
GenericPointer<int> intPointer = new GenericPointer<int>();
intPointer.setItem(143);
Console.WriteLine(intPointer.getItem());
上述代码运行正常,设置并返回值 143。
我现在想将此“intPointer”传递给一个递增它的方法,然后再次打印该值。
所以我写了一个方法叫 addone()
public void addone(int i) { i ++; }
现在我想进行以下调用(记住我已经将值设置为 143):
Console.WriteLine(intPointer.getItem());
addone(intPointer);
Console.WriteLine(intPointer.getItem());
我期望看到的是 143 然后是 144 但是我收到以下错误:
The best overloaded method match for 'Notes.Program.addone(int)' has some invalid arguments
和:
cannot convert from 'Notes.GenericPointer<int>' to 'int'
任何帮助将不胜感激!