Not allowed create MonoBehaviour using new keyword

Right now I have a simple weapon select. In the class WeaponSlot, I have a getSlotNumber method to return the currently selected weapon slot.
How can I return this from another script? I want to have it in my ObjectPool class.
So basically if I press 1, it shoots cubes, if I press 2 it shoots Spheres. So in the ObjectPool I will need to somehow use the getSlotNumber from WeaponSlots, but what is the best way of accessing the WeaponSlots class?

When I tried the following code:

WeaponSlots ws = new WeaponSlots();
int selectedWeapon = ws.getSlotNumber();

I get this warning

You are trying to create a MonoBehaviour using the ‘new’ keyword. This is not allowed. MonoBehaviours can only be added using AddComponent(). Alternatively, your script can inherit from ScriptableObject or no base class at all
UnityEngine.MonoBehaviour:.ctor()
WeaponSlots:.ctor()
ObjectPool:Start() (at Assets/Resources/Scripts/ObjectPool.cs:15)

Maybe do like the error message says and use AddComponent?
I don’t really see what you’re doing here (without you posting more scripts) but I can tell that you’re doing it wrong.

You should have a specific instance of the WeaponSlot class attached to a GameObject in the scene, and reference it by a variable.

WeaponSlots ws;

void Awake() {
ws = GameObject.Find("WhateverObjectHasWeaponSlotsOnIt").GetComponent.<WeaponSlots>();
}

Once you’ve done that; ws.getSlotNumber will work because ws refers to a specific instance of WeaponSlots.