AddListener fuction throwing a NullReferenceException error

Been trying to create a little shop canvas/menu that you can click 3 buttons to upgrade the player shooting script in the Survival Shooter Game.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class Shop : MonoBehaviour {

	
	public GameObject shopCanvas;

	
	public Button upDamage;
	public Button upROF;
	public Button upRange;

	// Use this for initialization
	void Start () {


		
		Button upDamage = gameObject.GetComponent<Button> ();
		Button upROF = gameObject.GetComponent<Button> ();
		Button upRange = gameObject.GetComponent<Button> ();

		
		upDamage.onClick.AddListener (PurchaseUpgrade);  
		upROF.onClick.AddListener (PurchaseUpgrade);         **ERRORS ARE HERE!**
	    upRange.onClick.AddListener (PurchaseUpgrade);

	}
	
	// Update is called once per frame
	void Update () {
	}

	void PurchaseUpgrade() {
		
		GameObject.FindGameObjectWithTag ("Player");
		gameObject.GetComponentInChildren<PlayerShooting> ();

		if (upDamage) {
			gameObject.GetComponentInChildren<PlayerShooting> ()
				.damagePerShot = 20;

		}

		if (upROF) {
			gameObject.GetComponentInChildren<PlayerShooting> ()
				.timeBetweenBullets = 0.1f;
		}

		if (upRange) {
			gameObject.GetComponentInChildren<PlayerShooting> ()
				.range = 200.0f;
		}

		Debug.Log("Success");

	}
}

What I am trying to do is make these buttons clickableand upgrade the right parameters in my game, but for some reason the add listener keeps giving me a NullReferenceException error. I am very new to C# (Just started learning it a few days ago).

@Commoble - its not letting me reply to your message but, I removed getcomponentinchildren, and I am not getting any errors anymore. However it’s still not changing any of the actual parameters when I click the buttons, not sure why…