我有一个我正在使用的事件,所以我真的不明白这个警告的真正含义.有人可以澄清吗?
public abstract class Actor<T> : Visual<T> where T : ActorDescription
{
#region Events
/// <summary>
/// Event occurs when the actor is dead
/// </summary>
public event Action Dead;
#endregion
/// <summary>
/// Take damage if the actor hasn't taken damage within a time limit
/// </summary>
/// <param name="damage">amount of damage</param>
public void TakeDamage(int damage)
{
if (damage > 0 && Time.time > m_LastHitTimer + m_DamageHitDelay)
{
m_CurrentHealth -= damage;
if (m_CurrentHealth <= 0)
{
m_CurrentHealth = 0; …Run Code Online (Sandbox Code Playgroud) 在我问我的问题之前,这是我的结构:
public class Data : ScriptableObject {...}
public class ItemData : Data {...}
public class WeaponData : ItemData {...}
public abstract class Item<T> : Visual<T> where T : ItemData {...}
public class Weapon<T> : Item<T> where T : WeaponData {...}
Run Code Online (Sandbox Code Playgroud)
当我创建一个Weapon对象并将其分配给我时,我收到一个错误(无法从源类型转换为目标类型)Item<ItemData>.
Weapon<Foo> weapon = new Weapon<Foo>();
Item<ItemData> other = weapon;
Run Code Online (Sandbox Code Playgroud)
这是为什么?