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

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

新規登録して質問してみよう
ただいま回答率
85.48%
C#

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

Visual Studio 2010

Microsoft Visual Studio 2010はMicrosoftが提供している統合開発環境(IDE)です。

Q&A

解決済

2回答

5560閲覧

C#のクラス

Yoshikun_0945

総合スコア224

C#

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

Visual Studio 2010

Microsoft Visual Studio 2010はMicrosoftが提供している統合開発環境(IDE)です。

0グッド

1クリップ

投稿2016/11/22 01:14

#分からないこと・実現したいこと
C#のWindows Form アプリケーションのタイプで、クラスを作成し、そのクラスの内部に変数を宣言しました。
その変数(クラス内で宣言した変数)の中身を複数のフォームで参照・変更する方法はどのように記述すればよろしいでしょうか?

###作成中のクラス

namespace Nagoya { //グローバル変数のためのクラス class Globals { int nc; //現在資金を記録する変数 int[] Train1 = new int[1]; public void Allinit() //変数の初期化 { nc = 100000000; //現在資金 Train1[0] = 800; //車両工場の枠の最大数 Train1[1] = 40; //車両工場の枠数(初期状態) } } }

気になる質問をクリップする

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

なんかクラス名とコメントからしてインスタンスを作ってどうこうする感じじゃないので、
一応、どこからでもアクセスできる(ただしプログラム中一つしか存在できない)シングルトンのやり方を紹介しておきます。
後はlain様の言うとおり、外から参照・変更したい変数にはpublicを付けてください。

私の勘違いでグローバル変数じゃないよ、たくさんインスタンス作りたいんだよという場合は、
下記の二行追加のところを消してそのまま作ればOKです。

C#

1public class Globals 2{ 3 // この二行を追加してください 4 public static Globals Instance = new Globals(); // 自分で自分を一つ作っておく。staticがポイント 5 private Globals(){} // こう書くと他所でGlobalsクラスを作る事ができない。 6 7 public int nc; //現在資金を記録する変数 8 public int[] Train1 = new int[1]; 9 10 public void Allinit() //変数の初期化 11 { 12 nc = 100000000; //現在資金 13 Train1[0] = 800; //車両工場の枠の最大数 14 Train1[1] = 40; //車両工場の枠数(初期状態) 15 } 16} 17 18// これでどこからでも呼べる 19Globals.Instance.Allinit(); 20Globals.Instance.nc = 100;

投稿2016/11/22 01:40

ishi9

総合スコア1294

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Yoshikun_0945

2016/11/22 01:50

大変助かりました。 ありがとうございました。
guest

0

クラスと変数の前に "public" を付ければ良いですよ。

投稿2016/11/22 01:21

lain

総合スコア161

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Yoshikun_0945

2016/11/22 01:28

作成中のクラスはおかしくなってませんか? 変数の宣言方法はpublicをつけるだけでいいですか?
lain

2016/11/22 01:53

グローバル変数での使用ですか?(普段使わないので気にしてなかった...) クラスのところは public static class Globals 変数のところは public static int nc; でどうですか? (あまりグローバル変数は使わない方が良いと思うのですが...)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問