• Advertisement
Sign in to follow this  

class instance always null

This topic is 1895 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

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. Edited by inject

Share this post


Link to post
Share on other sites
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).

Share this post


Link to post
Share on other sites
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. Edited by inject

Share this post


Link to post
Share on other sites
Ok, seems like i solved it by moving List<Token> initialization to TokenOwner class. Thanks.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement