我的功能有以下签名
function myfunction(ref object)
Run Code Online (Sandbox Code Playgroud)
我这样使用它
Array arr = Array.CreateInstance(System.Type.GetType("System.String"), 2);
arr.SetValue("1", 0);
myfunction( ref arr);
Run Code Online (Sandbox Code Playgroud)
我正在接受
"无法从'ref System.Array'转换为'ref object'"
我的印象是System.Array是对象...所以我为什么会收到这个错误?对象与Object不同吗?
您遇到的问题是,当一个数组是一个对象时,一个对象不是一个数组,因此在您的函数中,如果您的数组可以作为ref对象传入,则可以为该数组分配任何对象.
编辑:
要解决此问题,请声明一个ref变量来代替数组变量:
Array arr = Array.CreateInstance(System.Type.GetType("System.String"), 2);
arr.SetValue("1", 0);
object referenceObject = arr;
myfunction( ref referenceObject );
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1393 次 |
| 最近记录: |