這裏是從我LinqPad代碼片段:分配給struct數組裏面的方法在C#中不起作用?
public class Elephant{
public int Size;
public Elephant()
{
Size = 1;
}
}
public struct Ant{
public int Size;
}
private T[] Transform2AnotherType<T>(Elephant[] elephantList)
where T:new()
{
dynamic tArray = new T[elephantList.Length];
for (int i = 0; i < elephantList.Length; i++)
{
tArray[i] = new T();
tArray[i].Size = 100;
//tArray[i].Dump();
}
return tArray;
}
void Main()
{
var elephantList = new Elephant[2];
var elephant1 = new Elephant();
var elephant2 = new Elephant();
elephantList[0] = elephant1;
elephantList[1] = elephant2;
elephantList.Dump();
var r = Transform2AnotherType<Ant>(elephantList);
r.Dump();
}
我想改變已知類型,Elephant
的一個目的數組,以類型T的T另一個目的陣列不是class
,但限於struct
其 由T型股一些共同財產已經存在API.And每個實例提供,說:Size
,而且還擁有自己的特別財產 我在我的例子code.So省略了,我把dynamic
關鍵字Transform2AnotherType<T>
內。 我甚至無法使用Dump來確定作業是否已生效,因此將丟棄RuntimeBinderException
。
我的問題是:如何正確地在這樣的結構數組中賦值並正確返回它?
的LINQPad作者已經回答了你的問題上轉儲()[這裏](http://linqpad.uservoice.com/forums/18302-linqpad-feature -suggestions/suggestions/1126079-can-dump-work-on-dynamic-objects):使用'LINQPad.Extensions.Dump(dyn)'語法而不是'dyn.Dump()'。 –