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

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

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

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

Q&A

解決済

1回答

135閲覧

C#のクラスからの呼び出し

etn_ne7

総合スコア11

C#

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

0グッド

0クリップ

投稿2017/10/13 07:39

###前提・実現したいこと

フォームのクラスのメソッドのなかで
下記のように呼び出しているのですが、

this.Text = PsFileAccessor.g_clLang.MainDialog.Title;

      PsFileAccessor はクラスとして別ファイルで定義されてますが
その中の g_ClLang というメンバクラスのなかのタイトルを
呼びだしてますが、
PsFileAccessor のインスタンスがないのは何故でしょうか。
クラスの型からいきなり呼び出してるように見えますが
どういう意味になりますか。
よろしくお願いします

###発生している問題・エラーメッセージ

###該当のソースコード
C# VisualStudio2017

###試したこと
課題に対してアプローチしたことを記載してください

###補足情報(言語/FW/ツール等のバージョンなど)

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

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

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

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

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

guest

回答1

0

ベストアンサー

「Static C#」でググろう

投稿2017/10/13 07:51

kiichi54321

総合スコア1984

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

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

etn_ne7

2017/10/13 07:58

静的クラスも考えたのですが PsFileAccessor は 普通に class PsFileAccessor { } と定義されてますし、別の箇所では Newで呼び出されたりもしています。
kiichi54321

2017/10/13 08:09

ソースコード読めるならソースコードを読めばいいじゃない。静的メソッドだと予想。
edo_m18

2017/10/13 08:10

static「メソッド」では?
etn_ne7

2017/10/13 09:23

色々解答ありがとうございます。 class PsFileAccessor { public static LangData g_clLang;    ... のように g_clLang が 静的メンバのクラスのようでした。 静的メンバでしらべたところ、 静的なメソッド、フィールド、プロパティ、またはイベントは、クラスのインスタンスが作成されていないときでもクラスで呼び出すことができます。 クラスのインスタンスが作成されている場合は、これらを使用して静的メンバにアクセスすることはできません。 ・・静的メンバは、多くの場合、オブジェクトの状態に応じて変化しないデータや計算を表すために使用されます となっていたので、そのためインスタンスは作成されないで呼び出されてたのだと思いました。 インスタンスが作成されてたのは他のクラスで一時的に作成されているだけなので それは影響ないのかもしれません。(一時的なので上記の場合はアクセスできるということなのか) 他にも色々わからない部分はありますが、とりあえずグローバル変数のように使えるとでも考えて 先に進むことにします。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問