質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

91.36%

  • C#

    4774questions

    C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

  • Visual Studio 2013

    279questions

    Microsoft Visual Studio 2013は、Microsoftによる統合開発環境(IDE)であり、多種多様なプログラミング言語に対応しています。 Visual Studio 2012の次のバージョンです

別クラスから変数を受け取りたい (再)

解決済

回答 1

投稿 2015/10/15 14:07 ・編集 2015/10/15 14:07

  • 評価
  • クリップ 0
  • VIEW 710

fender0131

score 113

プログラムを書き換え再度投稿させて頂きました。
内容としましては、textbox1・2に数値を打ち込み、save_btを押すと、2つの値の合計がファイルに落とされるものとしました。
以下のプログラムで別クラスの変数xを受け取り、引数として別クラスに渡したいのですが、どのような処理が必要でしょうか?  

ご指導ご鞭撻の程よろしくお願い致します。 


public partial class Form1 : Form 
 {    
        public float a =10 ; // textboxの値を取ってきます (省略して直で値を与えています)
        public float b =20 ; // textboxの値を取ってきます 

        public void keisan() 
        { 
              Test.test(a,b) 
        } 

        public void save_bt_Click(object sender, EventArgs e) 
        {    
     // ここで何かしらの処理が必要と考えられる //
            // クラス「Test」内の変数、x を受け取り、引数で渡したい 

            Save.save ( Test.x ); // 値を受け取れていない  

        } 
 } 

 public partial class Test 
 { 
        public float x;  
         
        public static void test ( float a, float b ) 
        { 
             Test t = new Test(); 
             t.x = a + b; 
        } 
 } 

public class Save 

     public static void save( float x) 
     { 
           StreamWriter sw = new System.IO.StreamWriter( 
                                                         @"C:\data\file", 
                                                         true, 
                                                         System.Text.Encoding.GetEncoding("shift_jis") 
                                                       ); 

           sw.WriteLine(String.Format("C {0}", x); 
     } 
}
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+1

xをstaticな領域にできないなら
keisanを実行した時に作成したTestクラスのインスタンスを受け取って
受け取ったインスタンスのxを参照したらいいんじゃないでしょうか?
※下記コードのテストはしていません

public partial class Form1 : Form  
 {     
        public float a =10 ; // textboxの値を取ってきます (省略して直で値を与えています) 
        public float b =20 ; // textboxの値を取ってきます  
        private Test obj = null;

        public void keisan()  
        {  
              obj = Test.test(a,b)  
        }  

        public void save_bt_Click(object sender, EventArgs e)  
        {     
            if( obj != null)
            {
                 Save.save ( obj.x );   
            }
        }  
 }  

 public partial class Test  
 {  
        public float x;   
          
        public static Test test ( float a, float b )  
        {  
             Test t = new Test();  
             t.x = a + b;  
             return t;  
        }  
 }  

public class Save  
{  
     public static void save( float x)  
     {  
           StreamWriter sw = new System.IO.StreamWriter(  
                                                         @"C:\data\file",  
                                                         true,  
                                                         System.Text.Encoding.GetEncoding("shift_jis")  
                                                       );  

           sw.WriteLine(String.Format("C {0}", x);  
     }  
}




 

投稿 2015/10/15 14:44

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/10/15 16:04

    インスタンスの使い方について大変参考になりました。
    思い通りの結果を出力することができました。
    ありがとうございます。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

ただいまの回答率

91.36%

関連した質問

同じタグがついた質問を見る

  • C#

    4774questions

    C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

  • Visual Studio 2013

    279questions

    Microsoft Visual Studio 2013は、Microsoftによる統合開発環境(IDE)であり、多種多様なプログラミング言語に対応しています。 Visual Studio 2012の次のバージョンです