Согласен с Луисом и Лестером.Если вы используете .Net, то методы расширения - это путь для такого рода функциональности.Но вы должны попытаться не добавлять LengthOfFirstLine в базовый класс, если вы можете открывать все виды файлов, например, двоичные файлы.Вы бы поместили его в FileClass и добавили бы к нему метод.
Помните, что методы расширения в .Net в любом случае являются синтаксическим сахаром.Вы можете смоделировать его на своем родном языке, используя статические классы и методы.Это то, что .Net делает в любом случае.
Например, есть статический класс FileHelpers и различные статические вспомогательные методы.Первым параметром для каждого из этих статических методов будет класс File.Таким образом, вы можете назвать это, используя FileHelpers.GetLengthOfFirstLine(myOpenedFile)