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

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

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

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

2回答

4326閲覧

別プロジェクトにあるクラスを利用できない。

lkjv

総合スコア2

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

0クリップ

投稿2019/08/08 14:13

編集2019/08/08 14:14

前提・実現したいこと

VB.NET初心者です。
別プロジェクトに存在するクラスをもってきて
必要なデータを取得し、新しい画面に出力させたいのですが、
うまくできません。

ソリューション
プロジェクトA
プロジェクトB

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

privateデータは利用できない。

該当のソースコード

【VB.NET】 プロジェクトA  AAAForm.vb  BBBForm.vb  CCC.vb    ◆BBBForm.vb   private class B    dim a = b; 必要な変数データを取得し、showへ代入される。   Dim BBBForm as New AAAForm   BBBForm.show()    ◆AAAForm.vb   AAAForm_Load   CCC.inputData(a,b)   ・・・・   AAAForm_VisibleChanged   Display()    ◆CCC.vb   public modData(a,b) ※BBBFormは、CCC.vbのpublicなメソッドへアクセスした後に呼び出される     新プロジェクトDにプロジェクトAを参照追加する。 新プロジェクトD  ◆DDDForm.vb   import プロジェクトA   BBBForm.show() →privateなクラスBを参照しているためエラー     新しくNewで作成するのではなく、BBB.vbで設定されたプロパティ値などの   変数値が入っているデータをShowさせたい。  

試したこと

プロジェクト間のメンバ共有のため、継承ではなく、
参照設定を行った。

プロジェクト間同士で相互参照させる方が作成しやすそうだと考えていたが、
(循環する、とエラーが表示され)設計としてよくないということだったので、
相互参照はしていない。(できない)

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

文法の理解がまだできておらず、至らない点がありましたらすみません。

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

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

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

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

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

guest

回答2

0

例示しているコードが非常にわかりにくいですが、要するに新プロジェクトDプロジェクトAで定義されているBBBFormという private なクラスを参照しようとした、ということでしょうか。

であれば、エラーの内容(これも表示されているものをそのまま書いてほしいけど)に書かれているとおり、可視性が private であれば他のプロジェクトから参照できません。

単純に public に変更すれば解決すると思います。

投稿2019/08/08 16:26

gentaro

総合スコア8949

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

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

0

プロジェクトAで、参照したい項目は、以下の文脈を入れる必要があります。
public class a
privete a as string
private b as string
Public ReadOnly Property Geta As string
Get
Return a
End Get
End Property
Public ReadOnly Property Getb As string
Get
Return b
End Get
End Property

投稿2019/08/10 11:55

編集2019/08/10 11:57
akirafudo6

総合スコア341

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

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

akirafudo6

2019/08/10 12:01

メソッドは、属性なので機能的には利用しないほうがよいと思います。なのでメソッドのなかにshowなどの機能を持たせるのではなく、呼び元でmsgbox a.a などと記述したほうがよいと思います。
akirafudo6

2019/08/10 12:03

また、importしても、利用するクラスはnewする必要があります。 newは、ディスク領域からメモリにそのクラスを動かすための領域を確保するために必要です。 あくまでも、参照設定とかimportはそのクラスを使いますという宣言のようなものです。
Zuishin

2019/08/10 12:07

落ち着いてください。
akirafudo6

2019/08/10 13:17 編集

なお、newしない場合には、参照元のクラスをメモリ常駐しておく必要があります。 その場合には、メソッドにSharedを宣言しますが、一般的には構造体を利用したコード定義などに利用します。できるだけガベージコレクションに任せてメモリを解放させメモリを上手に使うことをお勧めします。
akirafudo6

2019/08/10 12:09

Zuishin>カーソルを矢印ボタンで操作しているとたまに投稿されてしまうんですよね><
Zuishin

2019/08/10 12:28 編集

そういう問題じゃなく、コンパイルできないしインデントないし質問の答えになってないしメソッドは属性ではないし show は多分 Show でメッセージボックスとは関係ないし private だから new はできないし class に static は意味がわからないし構造体関係ないし 落ち着いて下調べしてから書き直してください。
akirafudo6

2019/08/10 12:30

いや、newないよ。newしたくないと書いてるよmsgboxはあくまでも例としてかいてるだけです。
Zuishin

2019/08/10 12:31

直す気ないようなので低評価します。
akirafudo6

2019/08/10 12:32

それにprivate だから new はできないし の回答は、前回に回答している人が書いてるよね。
akirafudo6

2019/08/10 12:36

Zuishin>質問の内容から私は回答したように理解したので、あなたが別の見解があるのならその回答を書いてください。あなたの言っている意味が私には解りません。
Zuishin

2019/08/10 12:38

回答の質が低すぎます。私の言っている意味がわからないならなおさらです。
akirafudo6

2019/08/10 12:40

Zuishin>回答になってません。
Zuishin

2019/08/10 12:41

わかるよう勉強してください。
akirafudo6

2019/08/10 12:42

Zusinn>私にたいする回答でなくて、質問者様の回答をあなたの見解で書いてくださいと言っているのです。
Zuishin

2019/08/10 12:42

適切な回答が既に出ています。必要ありません。
akirafudo6

2019/08/10 12:46

あなたが回答したわけでないよね。あなたは関係ないじゃない?質問者さんはまったく初心者なのだから回答者を批判するよ別観点からあなたなりの見解から回答すべきではないでしょうか?
YAmaGNZ

2019/08/10 12:46

VBにstaticクラスはないんです。 全体的に意味が分からない説明になっているかと思います。
akirafudo6

2019/08/10 12:49

失礼しました。Sharedの間違いです。
YAmaGNZ

2019/08/10 12:51

Sharedも指定できません。そういう意味でstaticクラスがないと言っています。
akirafudo6

2019/08/10 12:53

Shared 私使ってますよ!
Zuishin

2019/08/10 12:56

おかしい回答には他のユーザーからおかしいところを指摘するコメントがつけられます。私はユーザーなので関係あります。
YAmaGNZ

2019/08/10 12:57

多分、 Public Class A   Public Shared Sub MethodA()     '処理   End Sub End Class という形だと思います。 staticクラスと同等のコーディングは Public Shared Class A End Class という形ですが、この時 BC30461 クラスを 'Shared' として宣言することはできません。 とコンパイルエラーとなります。
akirafudo6

2019/08/10 13:06

Sharedの件で言っているのであれば納得できますが、全体的に指摘しているのであれば中途半端な回答ではなくしっかりと責任をもって回答してください。でないと全体的に全く意味が解らなくなります。なのであなたなりの回答を記述してくださいと書いたのです。一の質問も一つの回答だけだと解らないってよくありますよね?例を言えば、一つの問題を色々な参考書から同じ項目について調べて自分なりの納得のいく回答を導きだすみたいな?なので、あなたなりの見解を記述してくださいと書いたのです。
Zuishin

2019/08/10 13:08

複数の見解が必要な質問ではありません。 そこからわからないのですか? なぜそのレベルで回答したんです?
Zuishin

2019/08/10 13:12

言いすぎましたかね。回答するのは結構ですが、間違いを指摘された場合にはゴネずに直してください。
akirafudo6

2019/08/10 13:15

それは、回答者様がこれをもとに多岐にわたり調べるだろうということです。初心者といっているのでそれで知識が広がることを期待して色々と書きました。なお、質疑が逆転してしまったのですが、コーディングしてもらったものは、この質問とは関係ないと思いますので、このスレッドでは詳しく書きません。
Zuishin

2019/08/10 13:16

1 + 1 を問われた時には、2 という回答が一つあれば十分です。 これならわかりますか?
akirafudo6

2019/08/10 13:19

田んぼの田という回答もあるよ!
Zuishin

2019/08/10 13:22 編集

そういう回答は低評価します。あなたのこの回答がそれです。雑談ならそれで結構ですが、問題解決の役には立ちません。
YAmaGNZ

2019/08/10 13:23

回答に書いてあることはまだ意味が分からんでもないですが、コメントの補足説明がまったく意味が分からないのですが・・・ 私はとりあずstaticクラスのみ突っ込みましたが・・・
Zuishin

2019/08/10 13:23

そして何より、間違った情報をまき散らすのは公害です。
akirafudo6

2019/08/10 13:24

冗談に見えますけど、初心者が理解するにはそれだけ難解ということですよ。また、だから色々な角度から回答があってもいいんではないでしょうか?
Zuishin

2019/08/10 13:28

初心者を余計にまどわせるので、間違ったことを書かないでください。
akirafudo6

2019/08/10 13:36

だから、回答者を非難するのはやめてください。不快です。 それと人それぞれ、考えが違うのだから、色々な回答もあれば色々なとらえ方があるのは理解されましたか?あなたにとって回答は一つかもしれないけど別の人にとっては複数の回答があるんですよ!
Zuishin

2019/08/10 13:40

質問者の問題を解決する方法はもう一つありますが、それは不適切です。それを除くと、この場合は一つしかありません。 あなたのとらえ方がどうあろうと、それでプログラムは動きません。
Zuishin

2019/08/10 13:42

コンパイラはあなたのとらえ方など知りもしないし忖度もしません。
Zuishin

2019/08/10 13:43

あなたのような面倒くさいのがいるから、無言で低評価する人が多いんですよ。
akirafudo6

2019/08/10 13:48

私の捉え方がどうのこうのは言ってません。世間一般的に言っただけです。あなたは人に物を教えたことがない人のように感じます。 また、不適切でも、その理由と方法をも答えてやるべきではないでしょうか?
akirafudo6

2019/08/10 13:53

面倒くさいのでなくて、しつこいんです。あっさりと理解してとらえてシステム設計レベルで変な風に理解してそれがもとで下に就いたものがものすごい迷惑を被ったプロジェクトをいくつも見てます。
Zuishin

2019/08/10 13:54

間違いを教えるくらいなら黙ってろってことですよ。
Zuishin

2019/08/10 13:55

間違ってることを捉え方で済ませてしつこく食い下がるのはただの害悪です。
YAmaGNZ

2019/08/10 13:55

間違ったことを情報として提供されるのもものすごい迷惑ですけどね
akirafudo6

2019/08/10 13:57

そんなことは、ないと思うよ。それによって、そうゆうことをやらずに済むのでは?
Zuishin

2019/08/10 14:00

指示代名詞が多すぎてわからない。
YAmaGNZ

2019/08/10 14:04

間違っていることを「間違い」と伝えることは正しい情報です。 間違っていることを「正しい」と伝えることは迷惑でしかありません。 今回の貴方のコメントはあきらかに後者です。 そして、「それによって、そうゆうことをやらずに済むのでは?」というのは前者の場合で起こることです。
akirafudo6

2019/08/10 14:04

間違えも、経験のうちということ。でなければ障害票なんて書かない。また書いておけば同じ間違いを起こした時に、その票を閲覧することにより解決につながるということ。なので、Zuishinさんが記述したやり方でお勧めしないやり方も、記述してはということです。
Zuishin

2019/08/10 14:06

障害票書いてくださいということをさっきから言ってるんですよ。
akirafudo6

2019/08/10 14:06

なんか、話がかみ合ってないので具体的に記述してください。あなたの書いていることも、時折意味が曖昧です。
Zuishin

2019/08/10 14:07

なにが? 自分が何を間違えているのかわからないの? 全部書いたのに?
Zuishin

2019/08/10 14:07

間違いも経験のうちだから、うだうだ言い訳せず障害票を書きなさい。
akirafudo6

2019/08/10 14:11

もう質問の内容と脱線してるじゃん。ちゃんとこちらの指摘みてますか?
Zuishin

2019/08/10 14:14 編集

質問の回答として間違っているから直せって最初から言ってるんだが。 脱線してるのは君だ。 ちゃんと指摘みてるか? それとも、この指摘を見ても何が間違ってるか本気でわからないほどの初心者なのか?
Zuishin

2019/08/10 14:16 編集

とらえ方の問題じゃない。 君の回答とコメントが間違っている。それをカテゴリ一位と四位が指摘してる。 低評価も三つついてる。 すぐ調べて直せ。
gentaro

2019/08/10 15:26

「プロジェクトAで、参照したい項目は、以下の文脈を入れる必要があります」とありますが、「文脈」という単語を利用するのは適当ではありません。「文脈・コンテキスト」という単語をこのように使わる事例を知りません。 https://teratail.com/questions/53738 「メソッドは、属性」というのも適切ではありません。(強いていえば属性はフィールドやプロパティを指し、メソッドは「操作・振る舞い」でしょう) http://e-words.jp/w/%E3%83%97%E3%83%AD%E3%83%91%E3%83%86%E3%82%A3.html http://e-words.jp/w/%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89.html どちらも「とらえ方」の問題ではなく、「世間一般的に言った」場合の言葉の定義の問題ですので、これらに対する指摘については見解を記載していただきたいです。 (正しい表現である、というのであれば根拠の提示を含めて)
退会済みユーザー

退会済みユーザー

2019/08/11 03:05

Zuishinはこれでもかなり手加減してやってる方だからなぁ。 流石に、見ていて呆れてくんぞ。
akirafudo6

2019/08/11 12:18

メインの質問と外れていますが ・文脈というより、コードと表現したほうがよかったのでしょか? ・記述しているコードに ReadOnly Property と記述しているので、日本語で属性と記述しましたがその場合みなさんは、なんと表現してるのでしょう?和訳の中にも属性との記述がありますよね。 また、操作・振る舞いについては、コードにpropertyがついてないものについてを指すのではないでしょうか?たとえば、関数(function)とか、内部サブルーチンとか? なお、gentaroさんのように指摘していただければ会話もできます。Zuishinさんの言い方は、よろしくないと思います。通報させてもらいました。
Zuishin

2019/08/11 12:19

いや、指摘したのにあなたが聞かなかっただけじゃない。 何言ってんの。
Zuishin

2019/08/11 12:23

初心者かと聞いても返事がなかったので、指摘内容の詳細は解説しなかったけど、あなたがこれわかんないのって私のせいなの? 自分で調べられるでしょ?
YAmaGNZ

2019/08/11 12:24

もしかして、「メソッド」と「プロパティ」の区別がついていないのですか?
退会済みユーザー

退会済みユーザー

2019/08/11 12:28

>Zuishinさんの言い方は、よろしくないと思います。通報させてもらいました。 Zuishinが通報とか下らねぇもので態度をどうこうすると思ってるとしたら、そりゃおめぇ、苦笑いしか出てこねぇぞ。 これまでの話の流れをちゃんと読んで、いい加減に自分の戦闘能力の低さを理解したほうがいいと、おら、本気で思うぞ。
gentaro

2019/08/11 12:58 編集

私の視点からすると全然会話できてないんですけど…。 > ・文脈というより、コードと表現したほうがよかったのでしょか? 質問で返されても。 良い悪いじゃなく、「文脈」ってどういう意味で使ってるんですか?という話です。 > ・記述しているコードに ReadOnly Property と記述しているので、日本語で属性と記述しましたがその場合みなさんは、なんと表現してるのでしょう? この回答欄の一番上のコメントでご自身が「メソッドは、属性なので機能的には利用しないほうがよいと思います。」と書いてるわけで、コードの話はしてないんですが。
akirafudo6

2019/08/15 10:40

すいません、そこは間違えました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問