Приведение строки к объекту - PullRequest
0 голосов
/ 27 апреля 2020

Я искал код Unity через декомпилятор Rider и обнаружил что-то странное:

Debug.LogError((object) "EndLayoutGroup: BeginLayoutGroup must be called first.");

Я знал, что Unity Debug.LogError() принимает тип object в качестве аргумента, но есть ли причину разыграть string до object? В чем разница между предыдущим и

Debug.LogError("EndLayoutGroup: BeginLayoutGroup must be called first.");

Я не вижу разницы между ними, потому что каждый класс C# наследует тип object, поэтому он будет автоматически приведен без каких-либо ошибок. Но я также думаю, что была бы причина, по которой инженеры Unity выбрали этот путь.

1 Ответ

1 голос
/ 27 апреля 2020

Кажется, не правильно декомпилируется, я думаю, что это фактический исходный код Исходный код Unity Ссылка :

// The matching end for BeginLayoutGroup
internal static void EndLayoutGroup()
{
    if (current.layoutGroups.Count == 0
        || Event.current == null
    )
    {
        Debug.LogError("EndLayoutGroup: BeginLayoutGroup must be called first.");

        return;
    }
    if (Event.current.type != EventType.Layout && Event.current.type != EventType.Used)
        GUIDebugger.LogLayoutEndGroup();

    current.layoutGroups.Pop();
    if (0 < current.layoutGroups.Count)
        current.topLevel = (GUILayoutGroup)current.layoutGroups.Peek();
    else
        current.topLevel = new GUILayoutGroup();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...