В моем коде я получил родовое, «GetProperty» как так:Как я могу вернуть примитив из метода с общим типом возврата?
public T getProperty<T>(int GUID, string property)
{
PropertyComponent prop;
prop = propDict[GUID];
if(property.Equals("visible")) return (T) (Boolean) prop.visible;
if(property.Equals("enabled")) return prop.enabled;
if(property.Equals("position")) return (T) (Object) prop.position;
}
Визуальный компилятор студии не дает мне ошибку на 3-й срок, а prop.position является Vector2. Prop.visible и prop.enabled, однако, являются bool s, поэтому, когда я пытаюсь вернуть их таким образом, я получаю сообщение об ошибке «Невозможно преобразовать тип bool в T» (и «Невозможно неявно преобразовать тип bool в T» для 2).
Каков правильный способ вернуть bool в этой ситуации?
'(T) (object)' - правильный выбор для всех трех терминов. – Marc
@Marc так ответ: «вы не можете использовать примитивы»? –