I am making a game in C# and XNA 4.0 and one of my classes requires its own texture. The class is currently being used like this:

Class constructor:

```
class Item : ItemBase //It uses a base class
{
    public Item(Texture2D myTexture) : base(myTexure)
    {
    }
}

```

New instance:

```
Texture2D m_Texture = Content.Load<Texture2D>("Texture1");
Item m_item = new Item(m_Texture);

```

However, every single new instance of the class will require the same texture (i.e. Every parameter value will be exactly the same). As a result, this parameter feels unnecessary. I was considering changing the constructor to be more like this:

```
public Item() : base(MainClass.m_Texture) //This now takes a public static variable from the main game class
{
}

```

This removes the need for the parameter (less coding on my part), but I was wondering if this would lead to other issues like performance and memory usage.

Overall, which is considered to be better programming practice? Having several class instances that all use the same parameter value or exchanging the constructor parameter for a static variable?