Просматривая код Moq, я увидел этот бит кода.Я надеюсь, что кто-то может объяснить, что происходит во время звонка в Guard.NotNull, как показано здесь.Это из ExtensionExpression.cs, если кому-то интересно
public static LambdaExpression ToLambda(this Expression expression)
{
Guard.NotNull(() => expression, expression);
/* other code suppressed...
/* code from Guard.cs */
internal static class Guard
{
/// <summary>
/// Ensures the given <paramref name="value"/> is not null.
/// Throws <see cref="ArgumentNullException"/> otherwise.
/// </summary>
public static void NotNull<T>(Expression<Func<T>> reference, T value)
{
if (value == null)
{
throw new ArgumentNullException(GetParameterName(reference));
}
}
/* rest of code suppressed */