0

当我设置一个摩尔类型的属性时,看起来他们总是需要一个原始摩尔类型的对象作为第一个参数。我还注意到 Moles 参考指南中的一些示例将此参数分配为@this,我试图找出原因。

例如,原始类看起来像这样:

public class ProductDAO
{
    internal void Insert(Product product, string id)
    {
        ...
    }
}

当我去摩尔这个方法时,该属性需要一个委托,其第一个参数始终是被摩尔对象的类型,在这种情况下,是一个ProductDAO对象。所以在这种情况下,该属性需要一个代表:

Action<ProductDAO, Product, string>

那么我是否总是必须提供那个摩尔对象作为我的 lambda 表达式的第一个参数?如果是这样,使用常规变量名与使用常规变量名有什么区别@this?是什么@this意思/做什么?

MProductDAO.AllInstances.InsertProductString = (dao, product, id) => { };

相对

MProductDAO.AllInstances.InsertProductString = (@this, product, id) => { };
4

0 回答 0