开发者

Get type of null array

I'm working on some serialization routines, and I need a way to get the type of an input array.

Let's say I have the following object:

class myclass {
    public int foo;
    public byte[] bar;
}

Now I can get the type of myclass.foo by using GetType(). And if I say that "myclass.bar = new byte[0]", I can infer that bar is an array of bytes by using GetElementType(), HasElementType, and IsArray.

However if I never set bar and just leave it as null, I can't find a way to get t开发者_运维百科he type info off the object. If I do myclass.foo.GetType() all I get is a null value.

Is there anyway to infer the type of "bar" in this case?


A nonexistent object doesn't have a type. It doesn't make sense to get the type of a null reference. What you are looking for is actually the type of the field. You can get that by reflecting over the type declaring the field (in this case, myclass).


I think reflection should work -

typeof(myclass).GetField("bar").FieldType
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜