TGViewer
StepOne | Степан Минин StepOne | Степан Минин @steponeit · 3.27K subscribers
Post #231 2.21K
partial взрывает мне мозг 🤯

Недавно решил изучить такую возможность C#, как объявление типов данных в разных файлах с помощью ключевого слова partial.

В коммерческой практике не так часто это встречалось.

И я обнаружил, что с этой фичей можно делать просто супер странные вещи.

Например, у нас есть простенький интерфейс IConract:

public interface IContract
{
void Foo();
}


Сделаем раздробленный класс MyPartialClass:

public partial class MyPartialClass
{
// ...
}


И оказывается, что реализацию интерфейса этим классом можно написать вообще в другом файле, и если иметь перед глазами только первый, то об этом и не догадаешься!

public partial class MyPartialClass : IContract
{
public virtual void Foo()
{
throw new NotImplementedException();
}
}


При этом виртуальный метод Foo можно спокойно переопределять в той же манере в наследниках:

public partial class MyPartialClassDerived : MyPartialClass
{
public override void Foo()
{
Console.WriteLine(this);
base.Foo();
}
}


Опять же, догадаться о существовании подобных членов типа будет достаточно проблематично.

Злоупотреблять таким в командной работе конечно же не рекомендую.

Однако, подобный функционал будет полезен разработчикам решений на основе Source Generators.

Таким образом, можно докидывать компилятором различные бойлерплейты, которые не хочется писать руками.
  • 💯 9
  • 🤯 3
  • 🙏 2
More from @steponeit
  1. Sep 29, 2026Рассказал как автоматизировал сборку лексера компилятором для своего языка программировани…
  2. Sep 28, 2026Пошутил про джавистов в прямом эфире 😅 Шарпизм победил окончательно и бесповоротно!
  3. Sep 27, 2026Post #860
  4. Sep 25, 2026Рассказал как я добавил в HydraScript объекты и методы без классов и сделал протоколы. Стр…
  5. Sep 22, 2026Post #858
  6. Sep 21, 2026Post #857
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →