[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2ch.scのread.cgiへ]
Update time : 08/10 07:02 / Filesize : 226 KB / Number-of Response : 843
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

古代VBプログラマ質問スレ(Ver.6.0 まで) part65



1 名前:デフォルトの名無しさん mailto:sage [2015/08/30(日) 19:25:35.12 ID:ZYoWCo0d.net]
ここは古代に使われていたVisual Basic 〜6.0 の質問スレです。
質問者は使用しているOS、VBのバージョン、サービスパックのバージョン、
「何がしたくて、どうしたけど、どう困っているのか」を明確に書きましょう。

VB.NETは別物なので専門スレで、VBA、APIの質問もそれぞれのスレで。

○ 質問者の心得
 一.質問する前にMSDNやGoogle、過去ログにも目を通してみる。
 二.VBScript、インストーラーなどはこのスレでOK。
 三.質問は第三者にもわかりやすいよう簡潔かつ具体的に。
 四.荒らしは相手しない。

○ 回答者の心得
 一.答えられない質問は無駄に罵倒せずスルー。無理するな。
 二.代用法を強制しない。
 三.回答する上で必須ではない情報をむやみに聞き返さない。
 四.荒らしは相手しない。
 五.VB情報募集中。
 六.回答は質問者が理解できるよう具体的に。

MSDN Online Japan ホーム
 www.microsoft.com/japan/msdn/default.asp
Visual Studio 6.0 Service Pack 6
 msdn.microsoft.com/vstudio/downloads/updates/sp/vs6/sp6/default.aspx
Google
 www.google.co.jp/

前スレ VBプログラマ質問スレ(Ver.6.0 まで) part64
peace.2ch.net/test/read.cgi/tech/1393069842/

※「まず自分で調べる」クセを身につけよう。

172 名前:デフォルトの名無しさん mailto:sage [2015/11/24(火) 22:31:20.46 ID:zh7sqiGg.net]
インターフェースを継承したインターフェースというのはあるが

173 名前:デフォルトの名無しさん mailto:sage [2015/11/24(火) 22:41:15.38 ID:PlNbYIXP.net]
>>172
そう言うのがあるから尚更インターフェース継承という言葉に違和感を感じるんだよなぁ

174 名前:デフォルトの名無しさん [2015/11/24(火) 22:46:18.86 ID:Ge1jTHPl.net]
クラス書くときにインターフェースを指定する、とはいうが継承するとはいわないね
クラスの継承と区別できていない人の誤用じゃないかと思う。

175 名前:デフォルトの名無しさん mailto:sage [2015/11/24(火) 23:15:03.71 ID:C2GeftYo.net]
インターフェースを継承して・・・
それからインターフェースを実装する。

>>172みたいなのは、
インターフェースを継承して・・・
以上


インターフェースを継承する部分のコードは
どちらも同じ書き方をするはずだ。 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)


176 名前:デフォルトの名無しさん mailto:sage [2015/11/25(水) 00:31:36.90 ID:1iBTFFHS.net]
C++はインターフェースが無いから

177 名前:デフォルトの名無しさん [2015/11/25(水) 08:16:28.26 ID:Wb60PP31.net]
とりあえず「インターフェイスを継承して」さんにはVB6のMSDNを熟読されることをおすすめします。

それと>>172はVB6では不可能です。

以上

178 名前:デフォルトの名無しさん [2015/11/25(水) 10:14:53.34 ID:tpCBhke/.net]
ここまで説明下手の連中が集まるとは驚きだ
インターフェース継承という言葉自体がおかしいとか逃げ口実まで出る始末
そんなんでは後輩がついてきませんよ

179 名前:デフォルトの名無しさん mailto:sage [2015/11/25(水) 10:33:37.74 ID:8iY9CP3j.net]
>>166
それ、個人の感想ですよね?

180 名前:デフォルトの名無しさん mailto:sage [2015/11/25(水) 10:36:31.58 ID:3PnF5u+J.net]
これだけ丁寧に説明されておいて逃げ口上だと理解する人にどうしろと?



181 名前:デフォルトの名無しさん [2015/11/25(水) 10:45:49.66 ID:Wb60PP31.net]
>>178

教えを乞う態度ではないなw

182 名前:デフォルトの名無しさん mailto:sage [2015/11/25(水) 10:49:35.00 ID:8iY9CP3j.net]
>>167
ん?
移譲はdelegationじゃないの?
compositionはdelegationの手段。

183 名前:デフォルトの名無しさん mailto:sage [2015/11/25(水) 11:05:09.32 ID:89c/isfJ.net]
考え方が逆だよ

同じインターフェースを持つ場合に継承する

まずはこれを理解しないとね

184 名前:デフォルトの名無しさん [2015/11/25(水) 11:15:59.49 ID:C5/GRR/j.net]
やくざの親分が基本クラスで子分が派生クラスと考えた場合
親分はどの子分にも同じ言い方で指示しても子分は指示通り正しく動く
親分でないやくざが子分に指示しても子分は親分の指示でないから意を解せず動かない
このとき、親分と子分の間の意思疎通のルールがインターフェースに相当する
継承がインタフェースか実装かは親分と子分との関係によって決まる
親分よりも保身が第一と考える子分ならインタフェース継承
親分のためなら命を張れる子分の場合は実装継承

185 名前:デフォルトの名無しさん [2015/11/25(水) 14:54:47.36 ID:gbRXEv5b.net]
VB6ユーザーの俺にはチンプンカンプンなので、分かる内容に変えてください。

186 名前:デフォルトの名無しさん [2015/11/25(水) 16:40:04.65 ID:C5/GRR/j.net]
>>185
気に入った女の子と仲良くなりたいときに、直接女の子にアプローチするのと
その女の子を知ってる人に間に入ってもらって紹介してもらうのと
どっちが気が楽でしかも成功率が高いと思う?

この場合、間に入ってもらう人が基本クラスに相当し、女の子が派生クラスに相当する
その間に入ってもらう人(基本クラス)が多くの女の子(派生クラス)と知り合いであった場合
その知り合いに毎回同じ方法、手続きで違う女の子を紹介してもらうことができる

見ず知らずの女の子に声をかけてナンパする場合(継承を使わない場合)の成功率と
(基本クラス)に間に入ってもらって、同じ手続きで違う女の子にアプローチできる(派生クラス)
どちらの方が良いかはVB6ユーザーでもわかるはずだ

187 名前:デフォルトの名無しさん [2015/11/25(水) 20:35:43.49 ID:q6KUEPS+.net]
結局インターフェイス継承と実装継承それぞれのの長所・短所はどうなりますか?

188 名前:デフォルトの名無しさん mailto:sage [2015/11/25(水) 20:37:11.13 ID:iOeAQZmr.net]
インターフェイス継承はインターフェースだけを継承しているから、
インターフェースを実装しなければ使いものにならない。
実装継承は実装を継承しているから一応使える。

189 名前:デフォルトの名無しさん mailto:sage [2015/11/25(水) 21:29:34.54 ID:GSr8zJ+4.net]
いまいちインターフェース継承ってのが何を言ってるのか分からん。

例えば、クラスAをスーパークラス、クラスBがクラスAを継承したサブクラスとしよう。

VB6のスレ的に考えれば、クラスBでクラスAのインスタンスを生成して、
そのメソッドやプロパティの引数や戻り値をクラスBから内部に持ってるクラスAに引渡していることを言っているなら、まだ分からんでも無かった。

だが>>163辺りを見ていると、インターフェースをクラスで実装すること事態を
インターフェース継承と言っているように見える。

>>163はインターフェースを介することによって、どのクラスがどのクラスを継承するようになるのか説明出来るのか?

190 名前:デフォルトの名無しさん [2015/11/25(水) 23:59:59.30 ID:skGhv8vg.net]
ここは古代VBプログラマーのスレですよ。
オブジェクト指向の話は別スレでお願いします。



191 名前:デフォルトの名無しさん [2015/11/26(木) 00:02:22.97 ID:iXRcTmiD.net]
xojoってフリーソフトを配布するときもライセンス買わないとだめなの?
やけに高いよね?

192 名前:デフォルトの名無しさん mailto:sage [2015/11/26(木) 01:12:12.83 ID:mB/EEuz0.net]
消防車 is a 車
消防車 has a ハンドル

is a は継承。〜の一種。クラス

has a は、〜の機能を持つ・実装。インターフェイス。
例えば、携帯電話にカメラ機能を付けるなど、
相互に全く関係ないものをくっつける

193 名前:デフォルトの名無しさん [2015/11/26(木) 04:07:36.32 ID:tYgX6ymT.net]
オブジェクト指向ってなんかしっくりこないんですけど。

194 名前:デフォルトの名無しさん mailto:sage [2015/11/26(木) 07:42:41.69 ID:DnfRVpyX.net]
インターフェースの継承は実装継承と比較するようなものではない
・インターフェースを拡張したインターフェースを定義する場合
・インターフェースを提供する(必ずしも実装はしない)クラスなどを継承するクラスなどを定義もしくは実装する場合
の後者はインターフェース継承ではない

195 名前:デフォルトの名無しさん mailto:sage [2015/11/26(木) 07:57:16.84 ID:1P7m2Ec5.net]
VB6のコントロール配列の特殊性はどうなの?
ハンドルも回すタイプとかステックタイプとかボタン付いてるのもあるな

196 名前:デフォルトの名無しさん [2015/11/26(木) 09:08:34.44 ID:3mYy768X.net]
>>192
すごい!ここ数日の中で一番分かりやすい説明です!
本当に驚きました。ありがとうございます!

>>194
またカオスになってきた様相・・・

197 名前:デフォルトの名無しさん mailto:sage [2015/11/26(木) 09:15:44.06 ID:3mYy768X.net]
>>192
それを >>186の説明に適用すると
紹介者はおっさんでも美しい女性でも成立するが
紹介者がおっさんの場合、紹介される女性とは完全異質なのでインターフェース継承だが
紹介者が美しい女性の場合、紹介者でありながら自分も紹介される女性として成立するから
実装継承という事になるわけだよな

198 名前:デフォルトの名無しさん mailto:sage [2015/11/26(木) 09:21:32.85 ID:3mYy768X.net]
>>195
フォームとそれに貼り付けられた(コンテナに入った)ボタンとの関係こそインターフェース継承だと思う
VB6でのGUI開発はその本質がインターフェース継承だがあえてそれをそう呼ばず
自分が定義したクラス間で同じような世界を実現するための仕様が Inheritsなのかもしれない

199 名前:デフォルトの名無しさん mailto:sage [2015/11/26(木) 10:01:46.47 ID:wjty/3s6.net]
ど素人ばっかかよ
移譲じゃなくて委譲だ

200 名前:デフォルトの名無しさん [2015/11/26(木) 10:32:21.66 ID:N4hinSZQ.net]
インターフェースと継承の違いは基本となるインターフェースおよびクラスの特性で明白

インターフェースは各社のテレビを一元で操作できる学習リモコンのようなものだと思えばいい
使用者は各社のテレビごとに異なる操作方法を知る必要がなく、リモコンの操作方法さえ知っていれば
全社のテレビを、電源ON/OFF、チャネル切り替え、音量変更など全て同じように操作できる
その代わりに、学習リモコンは全社のテレビを操作するために必要な「インタ―フェース」を実装しなければならない
この必要なインターフェースを基本となるインターフェースにすべて実装しなければならないという制約が発生する
しかしその制約以外は何でもアリで、同じリモコンを使ってビデオデッキを操作してもいいし
各社のテレビは直接操作することも全く別のリモコンから同時に操作されることさえ許される

継承における基本クラスは各社がテレビを作る際に必要となるリファレンスモデルのようなものだ
リファレンスモデルであっても放送受信、映像表示および音声出力などテレビとしての基本機能は網羅している
各社はリファレンスモデルに色付けした自社製品としてのテレビを販売することになる
機能を追加するにしてもゼロからテレビを設計するには時間とコストがかかる
だからリファレンスモデルをそのまま拝借してそこへ追加機能を実装するスタイルが継承だ
リファレンスモデルは自分で実装する必要もなくどういう仕組みになっているか知らなくてもよい代わりに
テレビの基本性能はリファレンスモデルより劣ることもないが企業努力でそれを超えることもできない



201 名前:デフォルトの名無しさん mailto:sage [2015/11/26(木) 10:41:41.51 ID:wjty/3s6.net]
ポエムはブログで

202 名前:デフォルトの名無しさん [2015/11/26(木) 10:46:30.16 ID:N4hinSZQ.net]
偉そうに
委譲どころか萎縮しちまうな

203 名前:デフォルトの名無しさん mailto:sage [2015/11/26(木) 10:51:55.16 ID:FmwBNACx.net]
>>200
【インターフェース継承】

TV(クラス)がもつ機能でもリモコン(インターフェース)にそれを操作する機能が用意されていなければ使えない世界

【実装継承】

TV(クラス)がもつ機能ならリモコン(クラス)にその機能を使用する手段を実装することにより自由自在に使うことができる世界

204 名前:デフォルトの名無しさん mailto:sage [2015/11/26(木) 10:55:56.32 ID:FmwBNACx.net]
例えば、パナソニック製TVだけがガンマ補正機能をもつ場合ガンマ補正の捜査が要求されたら
パナソニック製TVを使用するように判断し操作する

205 名前:デフォルトの名無しさん [2015/11/26(木) 11:10:29.90 ID:RRqCWuD6.net]
>>204
インターフェース継承でも

If USE_GAMMA_CORRECTION Then

  Set TV = PANASONIC

Else

  Set TV = SONY 

Endif

とか切り替えはできるけど、TVインターフェースにガンマ補正のためにインターフェースが実装されていないと
PANASONICクラス内のガンマ補正機能にアクセスする手段はないという事?

206 名前:デフォルトの名無しさん mailto:sage [2015/11/26(木) 11:35:32.41 ID:wjty/3s6.net]
>>205
おいおい、大丈夫かよ
そのコードは一体どこに実装されると思ってるんだ?

207 名前:デフォルトの名無しさん mailto:sage [2015/11/26(木) 11:44:09.94 ID:HpOrPYjt.net]
VB6ってCastあったっけ?

208 名前:デフォルトの名無しさん [2015/11/26(木) 12:17:17.74 ID:ihWl0nOX.net]
あなたが苦労して取得した資格の平均最低月給ランキングは第何位?
民間や国家が認定している仕事の資格や免許。
その求人雇用市場での価値が一目瞭然で分かる。
(全求人情報平均最低月給196,500円)

ぼくらニッポンの民間・国家資格別平均最低月給ランキングはこれだ!

jobinjapan.jp/license/

209 名前:デフォルトの名無しさん mailto:sage [2015/11/26(木) 12:59:38.59 ID:RRqCWuD6.net]
>>206
もちろんクラスの外側だよ
それこそがインターフェース継承の欠点でもある

210 名前:デフォルトの名無しさん mailto:sage [2015/11/26(木) 14:33:23.31 ID:wjty/3s6.net]
理解不能だ



211 名前:デフォルトの名無しさん mailto:sage [2015/11/26(木) 14:39:59.68 ID:RRqCWuD6.net]
無理スンナ 
ポエムでも読んでろ

212 名前:デフォルトの名無しさん mailto:sage [2015/11/26(木) 14:48:45.08 ID:wjty/3s6.net]
>>211
一言だけ言うと、SOLIDについて調べるといいよ

213 名前:デフォルトの名無しさん mailto:sage [2015/11/26(木) 15:12:01.95 ID:UUs/uCMX.net]
頭大丈夫か?

214 名前:デフォルトの名無しさん [2015/11/26(木) 15:17:29.25 ID:tFP+JHDf.net]
VB6プログラマがインターフェイスとか背伸びすんな。
おまえらは長年寝かした秘伝のソースを改修すればいいんだよ。

215 名前:デフォルトの名無しさん mailto:sage [2015/11/26(木) 16:14:44.66 ID:uG3Gqvd0.net]
VB6ってしばらく触っていないが、知らんうちにスゴイことになっているようだ
インターフェースの継承って一体どんなものなんだろう?
もしかするとインターフェースに抽象クラスの機能でも付いているのかな

216 名前:デフォルトの名無しさん mailto:sage [2015/11/26(木) 16:26:22.56 ID:8ZZhqZvl.net]
抽象クラスの定義は中身が無いメソッドが少なくとも1つは含まれていることが条件だから
インターフェースは、すべて中身が無いメソッドので、抽象クラスでもあるよ。

217 名前:デフォルトの名無しさん mailto:sage [2015/11/26(木) 16:32:22.01 ID:uG3Gqvd0.net]
概念はともかく文法的には別物扱いだよね

218 名前:デフォルトの名無しさん mailto:sage [2015/11/26(木) 16:34:08.38 ID:8ZZhqZvl.net]
そりゃな。

C++では逆にインターフェースはなくて
抽象クラス代用してるし。

219 名前:デフォルトの名無しさん mailto:sage [2015/11/26(木) 16:53:11.94 ID:wjty/3s6.net]
>>215
> インターフェースの継承って一体どんなものなんだろう?
本気で言ってるのかネタなのか区別つかんが、VB6/VBAでImplements IFooを
「インタフェース継承」あるいは「インタフェースを継承する」と言う人が結構いるってだけの話

あと、Javaクラスタの人にもいるみたいだ

220 名前:デフォルトの名無しさん mailto:sage [2015/11/26(木) 16:57:24.57 ID:wjty/3s6.net]
あー、調べたら、Javaの方は本当にインタフェースの継承だった

interface A {
  void write(String str , int synchro);
}

interface B {
  String third = "逃げちゃだめだ";
}

interface C extends A , B {
  void write(String str);
}



221 名前:デフォルトの名無しさん mailto:sage [2015/11/26(木) 17:10:55.56 ID:NexaTKB1.net]
実装継承ができない言語ならまだしも
実装継承とインタフェースの両方が使えるのに
あえてインタ^フェースを選択する人って一体?

222 名前:デフォルトの名無しさん mailto:sage [2015/11/26(木) 17:27:04.53 ID:WC2OrCem.net]
JavaはInterfaceに実装も書けるようになってる
AbstractClassと重なる部分をマスクとして除けば、Interfaceの意味はより明確になった

223 名前:デフォルトの名無しさん mailto:sage [2015/11/26(木) 17:41:36.43 ID:wjty/3s6.net]
>>221
一時期、実装継承は悪なんて風潮があったね
今考えると、LSP違反になりやすいとかそういうことが理由だったのかも
あと言語にもよるけど、実装継承を繰り返して継承すると、途中クラスの変更が
事実上できなくなったりするというのも理由の一つだと思う

224 名前:デフォルトの名無しさん mailto:sage [2015/11/26(木) 18:27:38.11 ID:NexaTKB1.net]
>>223
だからと言って何でもOKのインターフェース継承がおすすめというのは何とも理解しがたい

225 名前:デフォルトの名無しさん mailto:sage [2015/11/26(木) 18:37:04.37 ID:uG3Gqvd0.net]
>>221
そりゃ多重継承禁止だからよ

226 名前:デフォルトの名無しさん [2015/11/26(木) 18:39:02.80 ID:tFP+JHDf.net]
よそのスレで相手にされないやつがここに流れてきているのか

227 名前:デフォルトの名無しさん mailto:sage [2015/11/26(木) 19:23:52.45 ID:NexaTKB1.net]
みたいだな

228 名前:デフォルトの名無しさん mailto:sage [2015/11/27(金) 13:32:36.65 ID:R6S7u3+S.net]
>>224
インターフェース継承がなんでもOKというのは、どういう意味?

229 名前:デフォルトの名無しさん mailto:sage [2015/11/27(金) 15:16:27.07 ID:NglB0UAN.net]
>>228
たとえば継承10連結とかでもできるってことじゃない?

230 名前:デフォルトの名無しさん [2015/11/27(金) 15:36:41.66 ID:aY4C5YCH.net]
俺みたいに、VB6のプログラムがWin8.1までは動いていたんだけど、
Win10にして動かなくなったって人いる?



231 名前:デフォルトの名無しさん mailto:sage [2015/11/27(金) 16:20:01.62 ID:D5B47dYF.net]
インターフェースは継承とはレイヤーが違うので、概念上は制限が無いので、継承を包括し得る。C++のように継承でインタフェースを実現する事もありえるが、概念上は継承自体が制限となる。

232 名前:デフォルトの名無しさん mailto:sage [2015/11/27(金) 16:35:53.04 ID:NglB0UAN.net]
>>230
>>83
>>86

233 名前:デフォルトの名無しさん mailto:sage [2015/11/29(日) 06:18:22.07 ID:Wjtvnm/I.net]
用語1つで場をこんだけ混乱させてしまうオブジェクト指向ってプログラミングツールとしては最悪の部類だよね
でもそういう最悪をかき集めたものが飯の種になる矛盾を孕んでる
混乱が飯の種ってまるで火事場泥棒みたいなやつだ

234 名前:デフォルトの名無しさん [2015/11/29(日) 08:17:09.97 ID:pp/aKq6e.net]
staticおじさん乙

235 名前:デフォルトの名無しさん mailto:sage [2015/11/29(日) 08:19:21.41 ID:tYzWNDRy.net]
いやあこの話題の中で委譲の話を持ち出す人が居たのには驚いたわ
確かにインターフェースは委譲出来ないけど、ソレは抽象クラスでも同じことだからね

236 名前:デフォルトの名無しさん mailto:sage [2015/11/29(日) 09:45:04.56 ID:mstAENSD.net]
これがニッポンの民間・国家資格別平均最低月給ランキング。

将来有望な資格も見えてくる。
資格別の求人件数と平均最低月給ランキング。
あなたの資格の市場価値が一目瞭然!

jobinjapan.jp/license/
プログラマーの大切な資格は正当に評価されているか確認しよう。

237 名前:デフォルトの名無しさん [2015/11/29(日) 18:02:30.56 ID:SlphFEdz.net]
古代VB

そういえば、どこに消えちまったんだよ

238 名前:デフォルトの名無しさん mailto:sage [2015/11/29(日) 18:23:12.21 ID:KrqWIN7R.net]
イスカンダル辺りじゃないかな?

239 名前:デフォルトの名無しさん mailto:sage [2015/11/30(月) 10:13:29.53 ID:aCIh3523.net]
>>237
XP以降、VB6のランタイムはWindowsに包含されているから
EXE配布だけで実行させられるんで意外に重宝してる。
日本語表示させるためにはVBJP.dllとかが必要になるんで面倒だけど

240 名前:デフォルトの名無しさん mailto:sage [2015/11/30(月) 21:32:54.48 ID:V9s4KAVu.net]
>>233
馬鹿が集まっているスレだからという方が10000万倍説得力があるわ



241 名前:デフォルトの名無しさん mailto:sage [2015/12/01(火) 08:25:38.23 ID:9p6YUp2c.net]
いちまんまん

なるほど、馬鹿の集まりだわ。

242 名前:デフォルトの名無しさん mailto:sage [2015/12/01(火) 11:10:56.04 ID:Ai+9i+vY.net]
馬鹿に遠吠えする馬鹿はさらに恥ずかしい

243 名前:デフォルトの名無しさん [2015/12/07(月) 11:18:05.72 ID:f02lpWL1.net]
VB6の後継かどうか知らんがVBAを拡張する計画があるみたいね

Excelユーザーに感謝せんとな

244 名前:デフォルトの名無しさん mailto:sage [2015/12/07(月) 12:37:38.32 ID:uKCX4Zid.net]
やっとか…

245 名前:デフォルトの名無しさん mailto:sage [2015/12/07(月) 17:24:03.74 ID:7ldc1+VM.net]
VBAが拡張されるとしたら、おそらくECMAScriptの最新機能を
取り込んでくるだろうな。

246 名前:デフォルトの名無しさん mailto:sage [2015/12/08(火) 17:12:10.10 ID:QxmgGgsj.net]
Roslynでやるんじゃねーの?

247 名前:デフォルトの名無しさん [2015/12/08(火) 23:32:19.35 ID:RI/35RNi.net]
何の因果か未経験からVB6でのシステム保守に携わっています。
川口輝久の「Visual basic6 基礎編」は持ってるのですが
何とか理解できるようになったので
生産性向上のため見るべきサイトや本などが
あればお願いします。
漠然とした質問で申し訳ないですが
よろしくお願いします

248 名前:デフォルトの名無しさん mailto:sage [2015/12/08(火) 23:47:56.47 ID:nzVvVETE.net]
まず知識より挫けない強い心が必要

249 名前:デフォルトの名無しさん mailto:sage [2015/12/09(水) 08:08:43.71 ID:6RFm+bN4.net]
>>247
できるだけ他言語の新しい知識には接しないことだな。
VB6がクソに思えてしまう。

250 名前:デフォルトの名無しさん mailto:sage [2015/12/09(水) 18:08:39.82 ID:QAlRgC9p.net]
Fowlerのリファクタリングなんて良いんじゃないかな
VB6の場合いかにして手に負えないレガシーの塊を解きほぐすかって方針で勉強したほうが役に立つだろう
この方針なら他の言語に移った時にも学んだ事は無駄にならない
方向を誤ってVB6マスターを目指しちゃうと将来的に有意義な経験がなにも残らない



251 名前:デフォルトの名無しさん mailto:sage [2015/12/09(水) 18:29:23.88 ID:h+7RpR46.net]
CODE COMPLETE読め

252 名前:デフォルトの名無しさん [2015/12/09(水) 18:49:10.78 ID:jSWKuhmJ.net]
今VBってどこで使われてるの?

253 名前:デフォルトの名無しさん mailto:sage [2015/12/09(水) 19:47:06.70 ID:FWzMSQ9Q.net]
>>247の会社

254 名前:デフォルトの名無しさん mailto:sage [2015/12/09(水) 21:11:05.73 ID:mLmT+X7L.net]
>>250
VB6でテスト用意してリファクタリングするのは恐ろしく時間の無駄になる予感がするんだが・・・

255 名前:247 [2015/12/09(水) 23:34:53.11 ID:qYQrOutA.net]
みなさんありがとうございます。
開発といいましても既存の画面の修正からなのでリファクタリングというのをやってきます

256 名前:デフォルトの名無しさん mailto:sage [2015/12/10(木) 00:25:18.37 ID:ydUpcr2T.net]
日本の会社はリファクタリングにお金なんて出さないから注意な

257 名前:デフォルトの名無しさん mailto:sage [2015/12/10(木) 01:10:19.39 ID:Ti4G586p.net]
リファクタリングっていうのは解析作業の一種で、
複雑になってしまったコードを解析して
その結果を反映させること。

リファクタリングに金を出さないという話であれば、
複雑になったコードを解析するのにも金を出さないって話だぞ。
そのとおりだが。


解析して、コードは修正せずに、バグと戦って、次回も解析するか、
解析して、コードを修正して、バグなく楽に修正、次回も楽になるか
の違いだ。

258 名前:デフォルトの名無しさん mailto:sage [2015/12/10(木) 03:05:39.55 ID:lzUGhUsU.net]
質問させてください。
Windows7 pro 32bitにVB6.0Professionalを入れました。
これに適用するべき、MSが配布している更新ファイルを調べてみたのですが、

Vs6sp6B.exe
VB6.0-KB290887-X86.exe(=vbrun60sp6.exe)
VB60SP6-KB2708437-x86-JPN.msi

この3つ以外にもありますでしょうか?

259 名前:デフォルトの名無しさん mailto:sage [2015/12/10(木) 03:38:51.66 ID:2HBLgQQO.net]
俺もそういう更新ファイルとか分からんから適当に入れた

pastebin.com/sSPzxYHt
リストアップしてみた(関係ないのもあるけど)

260 名前:デフォルトの名無しさん [2015/12/10(木) 18:54:33.37 ID:E5kFv3hh.net]
>>247
解析ツール買ってもらえ



261 名前:デフォルトの名無しさん mailto:sage [2015/12/11(金) 07:04:04.42 ID:sydzYF+G.net]
お前ら教えろください

同じフォーム内にあるメソッドから〜_Clickみたいなイベントを呼び出すのってアリですか?

直感的にダメな気がするんですが、なぜダメなのか説明出来ません

どちらにしても誰か理由を説明出来る人いますか?
教えてエロい人

262 名前:デフォルトの名無しさん mailto:sage [2015/12/11(金) 08:29:46.42 ID:uOwfskUE.net]
だめな理由などなにもない

263 名前:デフォルトの名無しさん mailto:sage [2015/12/11(金) 08:37:20.53 ID:x/tmQiPi.net]
同意

264 名前:デフォルトの名無しさん mailto:sage [2015/12/11(金) 08:53:20.67 ID:u1XVE+8e.net]
直感的でダメって、お前の尺度で全て決まるんかいw

265 名前:デフォルトの名無しさん mailto:sage [2015/12/11(金) 08:57:09.06 ID:1J//Ejqv.net]
イベントが発生してないのにイベントハンドラが実行されたら困惑するだろう
平日にハロウィンコスプレするようなもんだ

266 名前:デフォルトの名無しさん mailto:sage [2015/12/11(金) 09:05:05.07 ID:x/tmQiPi.net]
どーせイベントの内容をコピペしたメソッド作ってそっちを呼ぶんだろ?
それなら最初からイベント呼んでおけ

267 名前:デフォルトの名無しさん mailto:sage [2015/12/11(金) 09:15:49.02 ID:qHZwrA+M.net]
VB屋はこれだから嫌だね

268 名前:デフォルトの名無しさん mailto:sage [2015/12/11(金) 09:58:01.96 ID:RFBkejq5.net]
普通はイベントの中身をメソッドにして、両方共其のメソッドを呼ぶように作るものだな

269 名前:デフォルトの名無しさん mailto:sage [2015/12/11(金) 10:28:41.26 ID:z9XcLK7w.net]
>>267
> VB屋はこれだから嫌だね

どれのこと?
わざとらしいアンチぐらい
見分けようよw

270 名前:デフォルトの名無しさん mailto:sage [2015/12/11(金) 10:42:52.95 ID:z9XcLK7w.net]
>>261
> 同じフォーム内にあるメソッドから〜_Clickみたいなイベントを呼び出すのってアリですか?
なし

> 直感的にダメな気がするんですが、なぜダメなのか説明出来ません
その直感は正しいよ。理由はいくつか有る。

まず、一般的にフォームというのはユーザーの入力と処理を結びつけるためにある。
結びつけるだけなのでなるべくフォームに処理は書かない。
処理はフォームとは別に(ビジネスロジック用の)クラスに分離する。
このクラスはフォーム関連コードは一切ない。これにより自動テストがしやすくなる。
このように分離するので、二つのイベントハンドラから、共通のクラスのメソッドを呼び出すので
_Clickを直接呼び出すことはない。

これが大きな理由では有るんだが、クラスを使うほどじゃない場合でも
処理はprivateメソッドに書いて、内部的には処理と結びつけるコードは分離させておいたほうがいい。

それから、もう少しわかりやすい理由として、依存関係の話がある。
_Clickというのは、ボタンだったりするわけだが、そのボタンの存在に処理が依存しているのか?ということ。
通常はボタンには依存していないだろう。仮にボタンをなくしたとしても、処理の内容は変わらないだろう?
だが、_Clickを呼ぶと処理の中にそのボタンが紛れ込んでしまってるわけだ。こういうふうに
余計なものが混ざるとUIを変更した時の影響範囲が大きくなる。

どちらにも共通することは、その責任が明確に分離されていること。単一責任の原則とも言われている。
自分の担当範囲の処理だけを行うことで、それぞれの処理がシンプルになる。
絡み合わせる必要が無いものを、絡み合わせてはいけない。



271 名前:デフォルトの名無しさん mailto:sage [2015/12/11(金) 12:14:45.33 ID:l7b7OwtU.net]
>>261
お前さんの直感は正しくて基本的には良いことじゃないけど、まあ程度問題ではある。

良いことじゃない理由は、メソッドの名前と実態が乖離するから。
(ボタンがクリックされた時に呼ばれるはずのメソッドが、それ以外の時にも呼ばれることになる)

これは、「イベントハンドラが呼ばれるのはイベントが発生した時だけだ」という前提でコードを読んでいる
プログラマの期待を裏切ることになる。

程度問題なのは、そうは言っても十分短いコードなら上記の前提が正しくないことに
プログラマは気づくことができる。

272 名前:266 [2015/12/11(金) 22:45:13.70 ID:qRgP3PMO.net]
>>269
わざとらしいアンチって俺の事?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<226KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef