When trying to call this function in my code i get the error in the title. Also Operator ‘+=’ cannot be applied to the operands of type ‘int’ and ‘T’
public int Change<T>(Stats type, T value)
{
Dictionary<string, string> temp = new Dictionary<string, string>();
temp = sql.Query(string.Format("SELECT {0} FROM player WHERE fbId='{1}'", type.ToString(), FBId));
if (typeof(T) == typeof(int))
{
int t = Convert.ToInt16(temp[type.ToString()]);
t += value;
if (t < 0) return -1;
PlayerStats[type] = t;
}
sql.Upload(string.Format("UPDATE player SET {0}='{1}' WHERE fbId='{2}'", type.ToString(), PlayerStats[type], FBId));
return 0;
}
I call the function by using:
Change<int>(type, 1);
Casting the value with
int()won’t work. It will raise an error "Cannot convert type ‘T’ to ‘int’ ". Thanks to Yatharth Varshney comment for pointing this out.But you can convert it using
System.Convertclass: