Я работаю над библиотекой C #, в которой примерно следующая реализация abstract class
:
public abstract class ModPrefab
{
public string ClassID { get; protected set; }
public string PrefabFileName { get; protected set; }
public TechType TechType { get; protected set; }
protected ModPrefab(string classId, string prefabFileName, TechType techType = TechType.None)
{
ClassID = classId;
PrefabFileName = prefabFileName;
TechType = techType;
}
}
Эта библиотека в настоящее время используется многими другими проектами.
Я разрабатываю обновление для этой библиотеки, которое включает в себя перемещение этого класса в другую сборку и перераспределение старой сборки (со всеми методами, передаваемыми в новую сборку) для обратной совместимости.
Мне было интересно, сломались бы проекты, зависящие от этого, если бы я изменил реализацию на:
public abstract class ModPrefab : NamespaceInNewAssembly.ModPrefab
{
protected ModPrefab(string classId, string prefabFileName, TechType techType = TechType.None)
: base(classId, prefabFileName, techType) { }
}
, где NamespaceInNewAssembly.ModPrefab
определяется в другой сборке как:
namespace NamespaceInNewAssembly
{
public abstract class ModPrefab
{
public string ClassID { get; protected set; }
public string PrefabFileName { get; protected set; }
public TechType TechType { get; protected set; }
protected ModPrefab(string classId, string prefabFileName, TechType techType = TechType.None)
{
ClassID = classId;
PrefabFileName = prefabFileName;
TechType = techType;
}
}
}