class Foo
{
public List<object> mylist;
public int num;
public string name;
public bool isIt;
public Foo()
{
mylist = new List<object>();
mylist.Add(num);
mylist.Add(name);
mylist.Add(isIt);
}
}
class Program
{
static void Main(string[] args)
{
Foo my = new Foo();
my.isIt = true;
my.mylist[0] = 5;
my.mylist[1] = "Hello";
Console.WriteLine("" + my.mylist[2]); => returns false instead of true
Console.ReadLine();
}
}
答えて
:
ここprivate bool _isIt;
public List<object> mylist;
public bool isIt{
get{return _isIt;}
set{
_isIt = value;
myList[2] = value;
}
}
あなたは行く!まさに私が望んでいたもの。要素が変更されたときにリストを更新する。どうもありがとう! :) – Vikyboss
my.mylist [2]がfalseであるため、falseを返すのはなぜですか...あなたの質問を明確にすることができますか?宣言することで
:
public bool isIt;
デフォルト値はfalseになります。
あなたが行うことができます:
public bool isIt = true;
をtrueに、それをデフォルトに。
my.isIt = trueを設定します。すでにmylist.Add(isIt)を使ってデフォルトにfalseをコレクションに追加した後。あなたがmy.mylist [2]で追加した値を変更しません。既にリストコレクションに追加した後、my.mylist [2] = trueに設定する必要があります。
my.myList[2].isIt = true;
あなたは正しい項目を設定しませんでした。あなたは後の行にISITの値を設定する前に、コンストラクタで:
間違っています。 isItはリストのオブジェクトではなく、私のものです
OK ...だから、この場合、リストがインスタンス化され、リストの3番目の値がデフォルト値falseのフィールドでインスタンス化されます。その後、フィールドを更新します。リスト内のアイテムが変更されるとは思わないでしょう。 –
あなたはISIT(false
デフォルト)の値を使用します。特に変更したり、ロジックを変更したりしない限り、デフォルトは常にfalseになります。これは値型なので、値はコピーされ、参照されません。
あなたの代わりに、リストのフィールドを使用して値を変更すると、あなたのリストには、フィールドとは異なる参照を保持しているので、あなたのコードはtrueを返すされていない理由があります。あなたのコンストラクタで
お電話:
mylist.Add(isIt);
それはobject
に箱入りの値false
を追加します。あなたがあなたのMain
で次に
、:
my.isIt = true;
あなたは、フィールドを変更しているが、リストには、まだあなたは、コンストラクタで追加した箱入りのオブジェクトを参照します。あなたがリストに格納されている値を変更したい場合は、あなたが最初に行ったように、リストを参照する必要があります。
my.myList[2] = true;
しかし、彼らはデータの異なるコピーを参照するため、これは、リストにフィールドをリンクしません(文字列の場合、不変型への参照の異なるコピー)。 1つのポイントを変更することはできますが、他のポイントが自動的に変更されることはありません。あなたが他のフィールドのいずれかを設定しようとした場合
同じことが真のようになります。「」、偽0、および:
my.isIt = true;
my.num = 5;
my.name = "Hello";
彼らはまだのリストで元の値が表示されます。
本当にこれをやりたければ、Jamie Dixonが示唆するようなことをすることができます。あなたのリストは常にインデックス2でアイテムを持っているだろうと仮定すると
ジェイミーが示唆したようにしました。それを説明してくれてありがとう。 :) – Vikyboss
mylist.Add(isIt);
あなたはリストではなく、変数自体にISITのVALUEを追加しました。 ザッツなぜあなたが行うとき:
my.isIt = true;
あなたは変数を更新していますが、リストには古い値に滞在します。
- 1. データベースが更新されたときにページを更新するにはどうすればよいですか?
- 2. ClickOnceインストールでDLLを1つだけ更新するにはどうすればよいですか?
- 3. VueJSでクリックした後にHTML要素クラスを更新するにはどうすればよいですか?
- 4. JavaScriptで別の要素をHTMLでクリックしたときに、1つの要素のブール値を変更するにはどうすればよいですか?
- 5. TextBox Leftを変更するとバインドされたクラスのX値が更新されるようにするにはどうすればよいですか?
- 6. angle2でrouteParamsが変更された後、ビューを更新するにはどうすればよいですか?
- 7. 画像の1つがクリックされたときに、パーシャルビュー内の画像のリストを更新するにはどうすればよいですか?
- 8. SharedPreferenceが変更されるたびにTextViewを更新するにはどうすればよいですか?
- 9. 関数を使って変数を変更した後に、リスト(リスト)を更新したリストで更新するにはどうすればよいですか?
- 10. 各要素ごとにクラスを個別に変更するにはどうすればよいですか? (角)
- 11. C#で要求されたURL全体を取得するにはどうすればよいですか?
- 12. DOM要素を変更するにはどうすればよいですか?
- 13. golangの構造体であるスライス要素を変更するにはどうすればよいですか?
- 14. 内容に応じて要素のクラスを変更するにはどうすればいいですか?
- 15. MySQLの行が更新されたときにタイムスタンプ列が更新されないようにするにはどうすればよいですか?
- 16. DbContextの外で変更されたエンティティを更新するにはどうすればよいですか?
- 17. DataGridViewで1行だけを更新するにはどうすればよいですか?
- 18. クラスが別の要素に追加されたときに1つの要素のCSSを変更する
- 19. 2つのコレクションに格納されたオブジェクトを1つだけ変更して更新できますか?
- 20. ウィンドウサイズが変更されたときに要素の位置を変更するにはどうすればよいですか?
- 21. 要素をスクロールするときにCSSを変更するにはどうすればよいですか?
- 22. 新しいリストを作成せずにリスト内のn個の連続した要素を変更するにはどうすればよいですか?
- 23. winform C#で別のアイテムが変更されたときに、propertygridアイテムの値を更新するにはどうすればよいですか?
- 24. 変更されたデータテーブルからSQLテーブルを更新するにはどうすればよいですか?
- 25. WPF要素も更新されるように、変更されたIndexerNameをC#でどのように使用するのですか?
- 26. Reactは、1つのアイテムが変更されたときにリスト全体を再レンダリングする
- 27. IOS - 要素のスクロール中に要素のインターフェイスを更新するにはどうすればよいですか?
- 28. テーブルビューでアイテムが変更されたときを検出するにはどうすればよいですか?
- 29. クロームアプリをできるだけ早く更新させるにはどうすればいいですか?
- 30. xsltで既に存在する値を持つ要素全体を変更するにはどうすればよいですか?
件名に説明全体を入れてはいけません。件名を簡潔にして、投稿の本文にあなたの質問が何であるかを説明してください。 –
bool変数はデフォルトでfalseであるため、falseを返します。 – Reniuz
いいえ、私はそれを明確にしていないと思います。私は要素が更新されたときリストの要素を更新する方法を尋ねていました。 my.isIt = true; <=外側を更新しました my.mylist [2] = true; <=内部の更新 – Vikyboss