C#をはじめたばかりの初心者なのですが、stringをlabelに代入できませんか? string a = ("あ"); label1.Text = ("{0}",a); のように代入したいのですが、エラーが出ます。 どうやったら代入できますか?教えてください

C#をはじめたばかりの初心者なのですが、stringをlabelに代入できませんか? string a = ("あ"); label1.Text = ("{0}",a); のように代入したいのですが、エラーが出ます。 どうやったら代入できますか?教えてください

補足

迅速な回答ありがとうございます>< もうひとつ聞きたいのですが、 string a = 1; string b = 2; string c = 3; lebel1.Text = ("{0}+{1}は{2}",a,b,c); こういう風にできますかね?

Windows 1016,147閲覧xmlns="http://www.w3.org/2000/svg">50

ベストアンサー

このベストアンサーは投票で選ばれました

5

<< ** 書式指定による文字列表示 ** >> コンソールアプリケーションでは、よく出力書式を指定して表示出力を行いますが、それをWindowsフォームアプリケーションでのラベルやテキストボックス等への出力にも適応させたいという質問ですね。 なお、"ooo {0} ooo {1} ooo {2} ooo"は、そのままでは単なる文字列です(ooo部は任意の文字列)。 {0}等の書式を適応させるメソッドを使わなければ意味がありません。 本件の場合は、String.Format()メソッドを使うと良いです。 具体的には以下に説明します。 [最初の問の回答] string a = "あ"; label1.Text = String.Format("{0}", a); {0}部に変数aの値が組み込まれる仕様ですので、上記コードでの出力表示内容は、以下の通りです。 あ [2つ目の問の回答] string a = "1"; string b = "2"; string c = "3"; label1.Text = String.Format("{0}+{1} は {2}", a, b, c); {0}、{1}、{2}部に変数a、b、cの値が組み込まれる仕様ですので、上記コードでの出力表示内容は、以下の通りです。 1+2 は 3 [補足の件の改良版] 本当は、変数a、b、cは、string型ではなく、int型等の数値の型で質問したかったのではないですか? もしもそうでしたら、以下のようにします。 だいたい上記までの方法と同じですが、変数が整数型(int等)なのか、実数型(double等)なのか、といったことを出力書式で指定して、String.Format()メソッドに知らせる必要があります。 int a = 1; double b = 2.34567; double c = a + b; label1.Text = String.Format("{0:D}+{1:F} は {2:F}", a, b, c); 上記コードでの出力表示内容は、以下の通りです。 1+2.34 は 3.34 上記コードのDやFは、書式指定子です。 Dは、10進数であることを指定しています。 Fは、固定小数点であることを指定しています。 その他の数値関係の書式指定子については、 http://msdn.microsoft.com/ja-jp/library/dwhawy9k.aspx [小数桁指定] 上記コードでは、小数点の桁が2桁で丸められています。 これは困るという場合は、小数点の桁数を指定することも可能です。 下記は5桁に指定しています。 int a = 1; double b = 2.34567; double c = a + b; label1.Text = String.Format("{0:D}+{1:F5} は {2:F5}", a, b, c); 上記コードでの出力表示内容は、以下の通りです。 1+2.34567 は 3.34567 [指数表示] なお、桁数が多い実数を取り扱う場合は、指数で表示したほうが望ましいと思います。 指数表示とは、例えば、実数の 9876.54321 を 9.87654321 x 10^3 と表記する方法です。 コンピュータ的表現では、一般に 9.87654321 e +3 と表示します。 上記コード例でのF5の部分をe5に書き替えると、指数で表示されて、 1+2.34567e+000 は 3.34567e+000 また、E5に書き替える場合は、e部が大文字で指数表示されます。 1+2.34567E+000 は 3.34567E+000 [詳細の参照先] 浮動小数点(実数)が、よく書式指定を使うので、その辺の説明を上記で付け足して説明しました。 その他について、詳しく知りたい場合は、以下を参照して下さい。 出力/入力書式指定については、 http://msdn.microsoft.com/ja-jp/library/fbxft59x.aspx String.Format()については、 http://msdn.microsoft.com/ja-jp/library/fht0f5be.aspx [他のメソッドでの適用] コンソール出力や、ファイル書き込み等のWrite()メソッド等でも書式指定が可能です。 http://msdn.microsoft.com/ja-jp/library/9xdyw6yk.aspx http://msdn.microsoft.com/ja-jp/library/system.io.streamwriter.write.aspx 他のメソッドでも書式指定が可能なものもあると思います。 該当メソッドで書式指定の機能が無い場合では、本件回答でのString.Format()でstringに変換してから使用して下さい。

5人がナイス!しています

その他の回答(2件)

0

TextはStringのプロパティなんで無理です。 label1.Text = a + "+" + b + "は" + c; とか label1.Text = hogehoge("{0}+{1}は{2}",a,b,c); ※hogehoge()は代入してStringを返す自作メソッド というように書いて、とにかくStringを戻すようにしてください。