class instance always null

Started by
2 comments, last by inject 11 years, 5 months ago
Hi gamedev, i have a bit of a problem smile.png
I have a class with few properties called Token and a class called TokenOwner wich has a list of the Token class and few methods to operate with this list.

class TokenOwner
{
public List<Token> Tokens;
public void AddToken(string name, double value)
{
Token t = new Token();
t.Name = name;
t.Value = value;
Tokens.Add(t); <- Here it throws exception
}
public void RemoveToken(string name)
{
Token t = Tokens.Find(x => x.Name == name); <- Here it throws exception
if (t != null) Tokens.Remove(t);
}
public bool HasToken(string name)
{
Token t = Tokens.Find(x => x.Name == name); <- Here it throws exception
if (t != null) return(true);
else return(false);
}
}
class Token : TokenOwner
{
public string Name { get; set; }
public double Value { get; set; }
}

Now i want to add a token to a class inherited from TokenOwner. But every time i try to add token, it throws ObjectNullReference exception.

class Character : TokenOwner{}
class MyClass
{
Character myCharacter = new Character();
myCharacter.AddToken("brokenleg", 0);
}

I tried to figure out what's wrong, but i am programming for just a few days, so i have no idea what's wrong... If someone pointed out what's wrong and maybe tell me what would work, that would help a lot.
Advertisement
Is that all your code? You never seem to initialize Tokens (i.e. I don't see a new List<Token>(); anywhere in your code).
Oh, seems like it slipped out, sorry about that.

class Token : TokenOwner
{
public string Name { get; set; }
public double Value { get; set; }

public Token()
{
Tokens = new List<Token>();
}
}

And of course, Token class is inherited from TokenOwner.
Ok, seems like i solved it by moving List<Token> initialization to TokenOwner class. Thanks.

This topic is closed to new replies.

Advertisement