Hello,
let’s say I have an object ''CharObj" of Class Character. The class has field Dictionary to keep character values for strength, intelligence, agility (which are fields).
Now I want to modify the class (with gui but thats not important) to have field power instead of strenght.
Do i need to modify the file Character.cs or can i somehow manipulate the elements of class? via abstract class or interface?
example
public class Character
{
int strength;
int intelligence;
Dictionary<string, int> abilities;
}
public class Character2
{
int power;
int intelligence;
Dictionary<string,int> abilities;
}
//
public class Character : CharacterAbilities
{
Dictionary<string, int> abilities;
public Dictionary<string, int> Abilities{
get { return abilities; }
set { abilities = value; } }
public int Strength {
get{return abilities["strength"]; }
set { abilities["strength"] = value; } }
public int Agility {
get { return abilities["agility"]; }
set {abilities["agility"] = value; } }
}
public interface CharacterAbilities
{
int Strength
{
get;
set;
}
int Agility
{
get;
set;
}
}
if i modify the class file then i will have to modify all the code for initializing objects if i add a new or delete new field in the class, right? Can it be ommited somehow?