Использование «@this» в делегатах молей - PullRequest
0 голосов
/ 21 июля 2011

Когда я устанавливаю свойство moled типа, похоже, что они всегда требуют, как первый параметр, объект оригинального moled типа.Я также заметил, что в некоторых примерах в Справочном руководстве по кротам этот параметр назначен @this, и я пытаюсь выяснить, почему.

Например, оригинальный класс выглядит примерно так:

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

Когда я собираюсь кротить этот метод, свойство ожидает делегата, первый параметр которого всегда является типом moledобъект, в данном случае объект ProductDAO.Таким образом, в этом случае свойство ожидает делегата:

Action<ProductDAO, Product, string>

Так что мне всегда нужно предоставлять этот смоделированный объект в качестве первого параметра моего лямбда-выражения?Если да, то в чем разница между использованием обычного имени переменной и @this?Что @this означает / делает?

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

против

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