Был похожий вопрос о схемах базы данных: копирование схемы базы данных конкурента? Я ответил там, что копирование всей схемы, вероятно, будет нарушением авторских прав, в зависимости от масштаба копирования, оцененного судьей.
Даже если ваш вопрос похож, я отвечу совсем наоборот: вы можете копировать сигнатуры методов. Почему?
На самом деле сигнатуры методов основаны на здравом смысле.
Во-первых, если мы возьмем крайний пример, Microsoft не может охранять авторское имяRandom
и подавать в суд на всех, кто будет использовать это слово Random
в любом приложении.
Во-вторых, что вы пытаетесь сделать именно? Реализовать .NET Framework? Почему? Нет необходимости изобретать велосипед . Если вы знаете, как сделать его лучше, интуитивно понятнее и т. Д., Скорее всего, у вас появятся лучшие имена классов и методов, лучшая организация и т. Д. Если вы попытаетесь скопировать структуру .NET Framework, чтобы перенести ее на другой языком , значит вы не прямой конкурент Microsoftпоэтому у них нет серьезных оснований предъявлять вам иск (при этом они будут предъявлять иск к вам, если вы скопируете сам исходный код). На самом деле, они даже выиграют от вас: копирование такой структуры в другие платформы не только продемонстрирует успех .NET Framework, но и облегчит разработчикам .NET работу с другими языками, а разработчикам других языков - изучение. .СЕТЬ.
В-третьих, у них есть более серьезные дела, чем подавать в суд на всех, кто будет копировать имена методов и классов .NET Framework.
Теперь, если вы хотите скопировать весь .NET Framework и создать продукт, который будет использоваться многими разработчиками, проконсультируйтесь с юристом, прежде чем рисковать.
Пример:
Я был совершенно недоволен ограничением 259 символов в путях к файлам в .NET Framework и невозможностью использовать транзакции кода на уровне файлов. Поэтому я реализовал свой собственный File
класс с методами, которые будут работать, как ожидается, для любого пути, а не только для крошечных коротких, и реализовывать транзакции. В первой версии я решил клонировать имена методов File
и Directory
классов . Microsoft подаст в суд на меня за это? Я в этом сомневаюсь.
Во всех случаях во второй версии у меня появился новый синтаксис new File(string fileName)
, который я считаю гораздо более интуитивным для меня . Клонирование имен методов иногда полезно, но у вас должна быть веская причина для этого.