Возможность сократить или оптимизировать программу

Задача: написать объект/структуру, которая будет в себе хранить количество состояний персонажа/монстра. Состояние храниться в строках. Вызывается по перечислителю.

Вроде сделал. И оно работает. Но можно как-то упростить это все?

using System;
using UnityEngine;

public struct AnimationSettings : IComponentInitializationStatus
{
    public AnimationSettings(int countState, params string[] argumentsAnimationState)
    {
        if (countState > argumentsAnimationState.Length || argumentsAnimationState.Length > countState)
            throw new ArgumentOutOfRangeException(StringsException.ExceptionArgumentOutOfRangeMessage);

        AnimationStates = new string[countState];
        AnimationStates = argumentsAnimationState;
        IsInitializationCompoent = true;
    }

    public bool IsInitializationCompoent { get; set; }

    private readonly string[] AnimationStates;

    public string this[AnimationStateId id]
    {
        get
        {
            if (!IsInitializationCompoent)
                throw new UninitializedAreaComponent(StringsException.ExceptionUninitializedAreaMessage);

            try
            {
                return AnimationStates[(int)id];
            }
            catch (Exception exception)
            {
                Debug.LogError(exception.Message);
                return string.Empty;
            }
        }
    }

    public string GetAnimationString(AnimationStateId id)
    {
        return this[id];
    }
}

Ответы (0 шт):