私はその建設C#メソッドoutパラメータリストの初期化(クリアで動作しません)
Method(out List<T>list)
{
list.Clear(); // doesn't allowed to initialyze List<T>list
list = null; // is accepted by VSTO, however, is not so good
}
に、任意の提案をしてください見つかりましたか?
私はその建設C#メソッドoutパラメータリストの初期化(クリアで動作しません)
Method(out List<T>list)
{
list.Clear(); // doesn't allowed to initialyze List<T>list
list = null; // is accepted by VSTO, however, is not so good
}
に、任意の提案をしてください見つかりましたか?
このメソッドでは、未割り当てパラメータは使用できません。単純なルールがあります:パラメータが初期化されていないかどうかはoutを使用するか、メソッドに初期化されたパラメータを渡す場合はrefを使用します。
このコードが正しく実行されます:
void Method<T>(ref List<T> list)
{
list.Clear();
list = null;
}
は、この問題のdifferenciesについて詳しく読む:What's the difference between the 'ref' and 'out' keywords?
あなたがout
意味論ではなく、ref
を使用したい場合は、あなたがあなたのリストをインスタンス化する必要があります。
Method(out List<T>list)
{
list = new List<T>();
}
'out'パラメータは、一般的に、メソッド内で作成されたものであり、metに渡されたものを変更するものではありませんhod。おそらくあなたは 'ref'を使うべきです。このコードが使用されるコンテキストを示す必要があります。 –
ありがとうMattew!実際には、クラスのリストフィールドのメソッドに処理しています。 公開リスト str = newリスト(); ... –