我有一些麻烦传递对一般类型的对象的引用.我找到了一种方法,创建一个'对象'并传递一个引用而不是原始的 - 但它似乎闻到了一点我.这里有更好的方式,还是我必须忍受它?
我理解第一个错误,但第二个错误让我失望.
public static T Foo<T>(ref T Bar)
{
T Result;
// Next line gives
// cannot convert from 'ref T' to 'ref object'
Result = (T)ModifyObject (ref Bar);
// Next line gives
// A ref or out argument must be an assignable variable
Result = (T)ModifyObject (ref ((Object)Bar) );
// Works
Object Tmp = Bar;
Result = (T)ModifyObject (ref Tmp) );
return Result;
}
public static Object DoSomthing(ref Object Obj) {
Object Result = Activator.CreateInstance (Obj.GetType ())
//...
}
Run Code Online (Sandbox Code Playgroud)
DoSomething不是通用的,因为它使用Obj类型可以改变的递归.我试图坚持使用反射来调用它的通用版本,虽然在发布时可能会更好吗?
| 归档时间: |
|
| 查看次数: |
5835 次 |
| 最近记录: |