System.Reflection Question

G

Guest

I have two code snipets, one in VB and the other in C#. Why does the visual
basic example not change the structure member "x", but the C# code does? I
need the visual basic code to work as I am a visual basic coder, but I don't
know what is wrong. Is there a bug in visual basic.net? Please help!


'VB Code
Imports System
Imports System.Reflection

Structure Foo
Public x As Integer
End Structure

Class Test

Shared Sub Main()
Dim f As New Foo
f.x = 10

Dim fi As FieldInfo = GetType(Foo).GetField("x")

Dim o As Object = f
fi.SetValue(o, 3)
f = CType(o, Foo)

Console.WriteLine(f.x)
End Sub
End Class




//C#
using System;
using System.Reflection;

struct Foo
{
public int x;
}

Class Test
{
static void Main()
{
Foo f = new Foo();
f.x = 10;

FieldInfo fi = typeof(Foo).GetField("x");

object o = f;
fi.SetValue (o, 3);
f = (Foo)o;

Console.WriteLine (f.x);
}
}
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top