reckfellENGINE

RF0302: Generic-параметру нужен MustBeVariant

Собственный T передаётся в API, требующее Variant-совместимый параметр, но контракт T не отмечен.

На этой странице

Для C#-проекта с Reckfell.NET.Sdk 1.0.0. Сначала исправьте первую ошибку сборки: последующие сообщения могут быть её следствием.

Причина

Собственный T передаётся в API, требующее Variant-совместимый параметр, но контракт T не отмечен.

Исправление

Добавьте MustBeVariant к объявлению T. Это правило анализатора, а не сериализатор произвольного C#-объекта и не CLR-ограничение where.

Пример с ошибкой

Сохраните файл в тестовом C#-проекте и выполните dotnet build. Этот вариант намеренно не собирается.

Example.cs
C#
using Reckfell;

namespace DiagnosticExamples.RF0302;

public static class Example { public static Variant Pack<T>(T value) => Variant.From<T>(value); }

Ожидаемые сообщения: RF0302.

Рабочий вариант

Замените ошибочный вариант этими файлами; не оставляйте оба объявления в проекте.

Example.cs
C#
using Reckfell;

namespace DiagnosticExamples.RF0302;

public static class Example { public static Variant Pack<[MustBeVariant] T>(T value) => Variant.From<T>(value); }

Результат

Pack<int>(7) возвращает Variant.Type.Int со значением 7. Вызов Pack<DateTime> остаётся ошибкой RF0301.

Связанные материалы

Все ошибки C# · Руководство C#

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.