How Can I Change GetType() And GetField() And GetValue() ?

Here I Have An Example Script:
-JavaScript:

public var valueName : String = "value";
public var value : float = 0;
public var source : Component;
public function Update ()
{
	source.GetType().GetField(valueName).GetValue(source) = value;
}

-C#:

public string valueName = "value";
public float value = 0;
public Component source;
public void Update ()
{
	(float)source.GetType().GetField(valueName).GetValue(source) = value;
}

Gives Me This Error:
Expression ‘self.source.GetType().GetField(self.valueName).GetValue(self.source)’ cannot be assigned to.
Is There A Way To Override And Change The Values From These?
I Can Only Be Able To Read Them.
Thanks…

Use the SetValue method:

public string valueName = "value";
public float value = 0;
public Component source;
private FieldInfo _fieldInfoCache;

public void Start()
{
    _fieldInfoCache = typeof(Component).GetField(valueName);
}

public void Update()
{
    if(_fieldInfoCache == null) return;

    _fieldInfoCache.SetValue(source, value);
}

I Used Another Method But It Was Based Something Like c4ctus’s Answer:
Just Simply Replace GetValue With SetValue And Do It Like That:
-JS:

 public var valueName : String = "value";
 public var value : float = 0;
 public var source : Component;
 public function Update ()
 {
     source.GetType().GetField(valueName).SetValue(source,value);
 }

-C#:

 public string valueName = "value";
 public float value = 0;
 public Component source;
 public void Update ()
 {
     source.GetType().GetField(valueName).SetValue(source,value);
 }

Thanks…