Questo è essenzialmente ciò che voglio fare:Come definire un getter virtuale e un setter astratto per una proprietà?
public abstract class Uniform<T>
{
public readonly int Location;
private T _variable;
public virtual T Variable
{
get { return _variable; }
}
}
public class UniformMatrix4 : Uniform<Matrix4>
{
public override Matrix4 Variable
{
set
{
_variable = value;
GL.UniformMatrix4(Location, false, ref _variable);
}
}
}
Il getter per Variable
sarà lo stesso in tutte le classi derivate, ma il setter deve essere diverso.
In effetti ... Preferirei non avere classi derivate (è solo una chiamata di funzione che differirà per ogni tipo) ma non riesco a pensare a come altro farlo.
Edit: Se non fosse chiaro quale sia il problema che sto avendo è, sto ottenendo un errore di sintassi:
'UniformMatrix4.Variable.set': cannot override because 'Uniform.Variable' does not have an overridable set accessor
E io non sono sicuro come creare un "accessor set overridable" ... virtual
e abstract
non sembrano essere consentiti sul setter.
Per quanto riguarda la modifica: è per questo che ho dato la risposta che ho dato. Ho già sconcertato questo problema. –