『C#』 labelなどのテキストを、関数の戻り値で設定するときに、元のテキストのままで、変更せずにしたい
説明しずらいんですが、、例えば
Dictionary<string,string> b = new Dictionary<string,string>{{"abc","あ"},{"cba","い"}} string a(string c) { return b[c]; }
という関数を作って、
label1.Text = a("abc")
とすると、
label1.Textは"あ"になりますよね。
ですが
label1.Text = a("abcd")
とやると、
エラーが発生してしまいます!
ですが
もし、値が存在しなかったら、label1のテキストを変えないようにしたいです。
ですが、label1.Text = a("hoge") の前に、ifとかを書くのはちょっとコードの長さとかがあれなので、
関数側で判定して、存在しなかったら変更しない
たとえばもとはlabel1.Text = "あいうえお"の状態で、
label1.Text = a("abcd")
としても、
label1.Textは、"あいうえお”のままという感じにしたいです
それで、
label1.Text = a("cba")
だったら、label1.Textは"い"という感じにしたいです。
試したこと
C#
1Dictionary b = new Dictionary(){{"abc","あ"},{"cba","い"}} 2string a(string c) 3{ 4 return b[c]; 5}
を、
C#
1Dictionary b = new Dictionary(){{"abc","あ"},{"cba","い"}} 2string a(string c,Control d) 3{ 4 if(b.ContainsKey("c")) 5 { 6 return b[c]; 7 } 8 else 9 { 10 return d.Text; 11 } 12}
という感じにしましたが、
もし、設定する対象が、コントロール以外だったら、できません!
label.Text = 〇〇; の前に、
C#
1try 2{ 3label.Text = 〇〇; 4} 5catch 6{ 7return; 8}
という感じにしたら、そりゃ対処できますが、
コードが増えてしまいます!!
エラーメッセージ
存在しないKeyを指定したとき
ハンドルされてない例外 | ???? | ✖ |
---|---|---|
System.Collections.Generic.KeyNotFoundException: '指定されたキーはディレクトリ内に存在しませんでした。' | ||
この例外は、最初にこの呼び出し履歴でスローされました: | ||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ |
System.Collections.Generic.Dictionary<TKey, TValue>.this[TKey].get(TKey) [名前空間_Test.値の設定メソッド()] の Setting.cs(navigate-to-context:1) [名前空間_Test.Form1.Load(object, System.EventArgs)] の Setting.cs(navigate-to-context:2) System.Windows.Forms.ListControl.OnSelectedValueChanged(System.EventArgs) System.Windows.Forms.Load(object sender, EventArgs e) System.Windows.Forms.Control.ControlNativeWindow.OnMessage(ref System.Windows.Forms.Message) System.Windows.Forms.Control.ControlNativeWindow.WndProc(ref System.Windows.Forms.Message) ... [呼び出し履歴の切り捨て]|||
#使用ツールなど
IDE : Microsoft Visual Studio 2019
OS : Windows10 64bit
言語 : C#
種類 : Windows Forms
フレームワーク : .Net(DotNet) Frameworks
回答5件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/30 07:06
2019/12/30 07:09
2019/12/30 07:10
2019/12/30 07:11
2019/12/30 07:12
2019/12/30 07:13
2019/12/30 07:14
2019/12/30 07:16