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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Считается ли перегрузка между статическими методами/методами экземпляра в Java перегрузкой? [дубликат]
    Anonymous » » в форуме JAVA
    0 Ответы
    42 Просмотры
    Последнее сообщение Anonymous
  • Кэширование с использованием SpatialFocus.MethodCache, но со статическими методами в C#
    Anonymous » » в форуме C#
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Преимущества классов только со статическими методами в C++
    Anonymous » » в форуме C++
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Создание одноразовых объектов статическими методами
    Anonymous » » в форуме C#
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Создание одноразовых объектов статическими методами
    Anonymous » » в форуме C#
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous

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