2017-12-19 9 views
0

私はList of RectangleFを持っています。私は静的でないクラスを持っていますが、このリストから要素への参照が必要です。 私は、ポインタを使用しようとしている:リスト要素へのポインタを作成しようとしています

Item f = new Item(); 
unsafe 
{ 
    f.linkedCollider = &Collisions.items.Last(); 
} 

はしかし、これはコンパイルエラーが発生する:

Cannot take the adress of a given expression

はこの一周する方法はありますか?

+0

リスト内のアイテムへの参照を保持できるようにするには、値タイプではなく参照タイプのリストを用意します。ポインタを使用することは、生産的な解決につながるわけではありません。そしてそれはあなたが始めるべき項目への参照を必要としていると仮定しています。 – Servy

+0

ポインタを使用することは非常に悪い考えです。 'RectangleF'のように見えるクラスを作成し、参照セマンティクスを使用します。 – Amy

+1

C#7.0のリターンを使用できます。しかし、おそらくあなたは解決しようとしている問題を説明する必要があります、xyの問題のように見えます。 – Sefe

答えて

0

この一周する方法はありません:CおよびC++での対応とは異なり、アドレス演算子& C#では非常に限定的である:it can be applied only to variables

The address-of operator can only be applied to a variable. If the variable is a moveable variable, you can use the fixed statement to temporarily fix the variable before obtaining its address.

あなたはメソッド呼び出しため、エラーメッセージが表示されます変数ではありません。

C#参照は、ポインタ構文を必要とせずにスマートポインタと同様に動作するため、間接指定が必要なほとんどの状況でポインタを避けることができます。

関連する問題