私はそうのような一般的な、「getPropertyメソッド」を持っている:prop.positionがベクトル2であるよう一般的な戻り値の型を持つメソッドからプリミティブを返すにはどうすればよいですか?私のコードでは
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;
}
のVisual Studioのコンパイラは、私の第三項のエラーを与えません。 Prop.visibleとprop.enabledはboolなので、このように返すと「boolをTに変換できません」というエラーが出ます(「boolをTに暗黙的に変換することはできません」 2番目)。
この状況でブールを返す正しい方法は何ですか?
'(T)(オブジェクト)'は3つのすべての用語に対して正しいキャストです。 – Marc
@Marcだから答えは "あなたはプリミティブを使うことができない"ということですか? –