DRY — производный класс со статическими методамиC#

Место общения программистов C#
Anonymous
DRY — производный класс со статическими методами

Сообщение Anonymous »

В Unity C# у меня есть базовый класс Baker, он является производным от ScriptableObject, а я наследую от него CakeBaker, BreadBaker, PieBaker.
ScriptableObjects можно создавать только статически, использование CreateAsset()
Это приводит меня к ситуации, когда каждый из моих пекарей теперь содержит идентичный метод CreateBaker(), с той лишь разницей, что это Тип.
статика и обобщения несовместимы, и статический метод работает с классом, в котором он объявлен, а не с классом, производным от него.
Я думал о макросах в стиле C/C++ , но AFAICS не имеет эквивалента в C#.
Как мне избежать повторения (и всего, что с этим связано) в этой ситуации?
это небольшой метод, а пекарей в настоящее время не так уж и много, поэтому я просто скопировал метод и приступил к нему, но мне было интересно, есть ли у коллективного разума идея получше.
private static string assetPath => "Assets/PieBakerAsset.asset";

public static void CreateAsset(bool updateAssetDatabase = true)
{
var instance = CreateInstance();
// Save the newly created instance to the AssetDatabase if it does not exist
AssetDatabase.CreateAsset(instance, assetPath);
if (updateAssetDatabase)
{
AssetDatabase.SaveAssets();
AssetDatabase.Refresh();
}
}

public static Baker CreateInstance()
{
return CreateInstance();
}


Подробнее здесь: https://stackoverflow.com/questions/786 ... ic-methods

Вернуться в «C#»