It depends what you want to do with it. Probably, I'd create an abstract Token class, and derive more concrete classes from that to represent what teh token types are supposed to do, or be used for:
public class TokenNumber: Token ...
public class TokenUserName: Token ...
I'd then add abstract processing methods which each derived class has to implement. It's possible that this might be an Interface rather than an abstract class, but that would depend on what else you need to do with your Tokens.
Using a Dynamic variable as you are is basically the same as using an object:
public class Token
{
public object Value {get; set;}
}
Which defeats the strong typing that is one of the reasons C# is so much better than VB.