Why cant I make this a public int?

If i try making TheNumber a public int, every gets underlined and gets errors.

public class ObjectSpawning : MonoBehaviour {
   
    public GameObject H1;
    public GameObject H2;
    public GameObject H3;



    private void Update()
    {
       int TheNumber = Random.Range(0, 5);

        if (TheNumber == 1)
        {
            print("a");
            H1.transform.Translate(34f, 0f, 0f);
            H3.transform.Translate(34f, 0f, 0f);

        }
        if (TheNumber == 2)
        {
            print("b");
            H2.transform.Translate(34f, 0f, 0f);
        }
        if (TheNumber == 3)
        {
            print("c");
            H1.transform.Translate(34f, 0f, 0f);
            H3.transform.Translate(34f, 0f, 0f);
        }
        if (TheNumber == 4)
        {
            print("d");
            H2.transform.Translate(0f, 34f, 0f);
        }
    }


}

I am using c#, btw,

It’s because you are trying to make the int public inside a function. If you want to access ‘TheNumber’ elsewhere, define it as a public outside of any functions, inside the class definition:

public class ObjectSpawning : MonoBehaviour {
    
     public GameObject H1;
     public GameObject H2;
     public GameObject H3;
 
     public int TheNumber;
 
     private void Update()
     {
        TheNumber = Random.Range(0, 5);
 
         if (TheNumber == 1)
         {
             print("a");
             H1.transform.Translate(34f, 0f, 0f);
             H3.transform.Translate(34f, 0f, 0f);
 
         }
         if (TheNumber == 2)
         {
             print("b");
             H2.transform.Translate(34f, 0f, 0f);
         }
         if (TheNumber == 3)
         {
             print("c");
             H1.transform.Translate(34f, 0f, 0f);
             H3.transform.Translate(34f, 0f, 0f);
         }
         if (TheNumber == 4)
         {
             print("d");
             H2.transform.Translate(0f, 34f, 0f);
         }
     }
 
 
 }