set material to meshrenderer not working

Hello Unity Community,
i try to set a material to every meshrenderer in the inspector but its not working. i dont get an error but nothing happens. i think i did something wrong in the part with foreach but i dont know what. here is my code (c#):

using UnityEngine;
using System.Collections;

public class Weather : MonoBehaviour {
	public Material newMaterialRef;
	public GameObject GOToDisable;
	public MeshRenderer[] ObjectsGetWet;
	
	int Variable;

	void Start () 
	{
		Variable = Random.Range (0, 5);
		print (Variable);


						if (Variable == 2) {
				GOToDisable.SetActive (true);
			//Rend01.material = newMaterialRef;
			foreach(MeshRenderer renderer in GetComponents<MeshRenderer>())
			{
				renderer.material = newMaterialRef;
			}
	

	
						}
		if (Variable == 4) {
			GOToDisable.SetActive (true);
			//Rend01.material = newMaterialRef;
			foreach(MeshRenderer renderer in GetComponents<MeshRenderer>())
			{
				renderer.material = newMaterialRef;
			}

	

		}
				
	}

}

I think you mean you want to change the material to every ObjectsGetWet?

Then you probably want to iterate over that array:

foreach(MeshRenderer renderer in ObjectsGetWet) {
  renderer.material = newMaterialRef;
}

do you mean so?

using UnityEngine;
using System.Collections;

public class Weather : MonoBehaviour {
	public Material newMaterialRef;
	public GameObject GOToDisable;
	public MeshRenderer[] ObjectsGetWet;
	
	int Variable;

	void Start () 
	{
		Variable = Random.Range (0, 5);
		print (Variable);


						if (Variable == 2) {
				GOToDisable.SetActive (true);
			//Rend01.material = newMaterialRef;
			foreach(MeshRenderer renderer in GetComponents<MeshRenderer>())
			{
				MeshRenderer.material = newMaterialRef;
			}
	

	
						}
		if (Variable == 4) {
			GOToDisable.SetActive (true);
			//Rend01.material = newMaterialRef;
			foreach(MeshRenderer renderer in GetComponents<MeshRenderer>())
			{
				MeshRenderer.material = newMaterialRef;
			}

	

		}
				
	}

}