У меня есть такой класс:
public class Product : IProduct
{
static private string _defaultName = "default";
private string _name;
private float _price;
/// Constructor
public Product()
{
_price = 10.0F;
}
public void ModifyPrice(float modifier)
{
_price = _price * modifier;
}
Я хочу, чтобы ModifyPrice ничего не делал для определенного значения, но я также хочу вызвать конструктор, который устанавливает цену до 10. Я пробовал что-то вроде этого:
var fake = new SProduct() { CallBase = true };
var mole = new MProduct(fake)
{
ModifyPriceSingle = (actual) =>
{
if (actual != 20.0f)
{
MolesContext.ExecuteWithoutMoles(() => fake.ModifyPrice(actual));
}
}
};
MProduct.Constructor = (@this) => (@this) = fake;
Но даже если fake хорошо инициализирован с помощью хорошего конструктора, я не могу присвоить его @this. Я тоже пробую что-то вроде
MProduct.Constructor = (@this) => { var mole = new MProduct(@this)... };
, но на этот раз я не могу вызвать свой конструктор. Как мне поступить?