Я столкнулся с этой техникой программирования, когда занимался парным программированием в интервью, и не смог найти ее название в Google.
Идея состоит в том, что вы сначала пишете выражение, которое использует переменные, а затем пишете код, который вычисляет переменные позже.
Чтобы использовать пример кода здесь:
private bool ValidPolicyNumber(string policyNumber)
{
var hasExpectedPrefix = policyNumber.Substring(0,5) == "POLIC";
var followedBy7Digits = Regex.IsMatch(policyNumber.Substring(6,7), "^[0-9]{7}$");
var hasLengthOf12 = policyNumber.Length == 12;
return hasExpectedPrefix && followedBy7Digits && hasLengthOf12;
}
При написании этой функции, используя технику, которую я упомянул, вы сначала должны написать последнюю строку, return hasExpectedPrefix && followedBy7Digits && hasLengthOf12;а затем написать 3 строки, которые предшествуют ей.
Самым близким методом, который я смог найти, является «желаемое за действительное», и это из SICP, но это касается вызова функций, которые вы собираетесь реализовать позже, а не использования переменных, которые вы собираетесь инициализировать позже.