• 締切済み

このプログラムの問題点を教えてください。

Public Cass test1 Private mBool As Boolean <Browsable(False)> _ Public Property Bool() As Boolean Get Return mBool End Get Set(ByVal value As Boolean) mBool = value End Set End Property Private GetNo(ByVal No As Integer, ByVal count As Integer) As Integer Dim intNewNo As Integer = 0 If (No + count) > 99999 Then mBool = True Else mBool = False inNewNo = No + count End If Return intNewNo End Function ※このプロパティを別のクラスで使用しました。 Public Class test2 Public sub Handan() Dim Han As test1 = New test1 If Han.Bool = True Then MsgBox("Yes") Else MsgBox("No") End If End Sub 多少端折りましたが、以上のようなプログラムを書きました。 Getnoメソッドは、test2クラスの別のメソッドで使われていたのですが、 Getnoの値によって処理を変えたかっただめ、test1にプロパティを作って 判断できるようにしました。 このコードをレビューしてもらったところ、なにか問題があったようなのですが (プロパティの意味がないとか、そういう趣旨の) レビューした本人と連絡がとれないため、どこがおかしいのかわからず困っています。 このBoolプロパティの使い方、問題がありましたら、教えてください。

みんなの回答

  • dsuekichi
  • ベストアンサー率64% (171/265)
回答No.3

> それが出来れば最初からここに書いてませんてば。 > それくらいは想像できませんか? それもそうですね。 では、はっきり言ってしまいましょう。 私は、「直さなくても良い」と思っています。 > というか、用途は想像していただかなくて構いませんので、 > プログラム的な欠陥だけお答えいただけないかなぁ、と。 仕様どうりに動作しない、とかじゃ無いんですよね? それなら、『「プログラム的な欠陥」は無いでしょう』としか回答できません。 #「プロパティの意味がないとか、そういう趣旨」の詳細は結局分かりませんし、 #貴方も説明する気は無いようですので、判断できません。 #(不確かな情報を元に、判断してはまずいでしょうし) 貴方が、「このプロパティは絶対に必要だ」と思われるのなら、 そう言って、レビュー者を説得すればよいだけだと思います。 #「レビュー者に指摘されたら必ず直さなければいけない」と #いうわけでは無いはずです。 #レビュー者だって、勘違いや思い違いをすることもありますから。 レビュー者の意図を確認せずに直して、 レビュー者に「それじゃ駄目」といわれたら元も子もないと思いますし・・・

noname#32335
質問者

お礼

再度ありがとうございます。 >仕様どうりに動作しない、とかじゃ無いんですよね? 「どうり」というか「どおり」ですね。 プログラム的に問題がないようなので、安心しました。 しかし、ピンポイントに言っていただければ話が早かったんですけどね。 最初に「GetNoが実行されてないよ」と言っていただければ、 No1のやり取りはいらなかったのに。 遠まわしにネチネチ言われている感があり、気持ち悪いです。 不確かな情報は判断していただかなくていいので、明示されている 点についてだけ答えるようにすれば、時間が節約できますよ。

  • dsuekichi
  • ベストアンサー率64% (171/265)
回答No.2

> test1クラスのほうで判断しているNo+Countの値が > 99999より上か否かをtest2クラスで見る必要があったので 具体的に、どういう風にです? #提示されたコードは、New直後に判定している #(つまり「GetNo」が実行されていない)ので、判定の必要は無いですよね? #「多少端折りましたが」ってことですが、「肝心な箇所を端折っている」のでしょうか? > この場合はどうするのが適しているのでしょうか? どういう使い方をするかによるでしょうね・・・ #「Bool」なんて名前のプロパティじゃ用途も想像できませんし・・・ #何で「99999より上か否かを」判断する必要があるのかも良く分かりませんし・・・ #そもそも、「inNewNo = No + count」なんて、足し算プロシージャの存在理由も分かりませんし・・・ > レビューした本人と連絡がとれないため 頑張って連絡取ったほうが早いのでは・・・ #「あー、それなら良いよ」って言われるかも。

noname#32335
質問者

補足

肝心なところが抜けてました。 Dim Han As test1 = New test1 これの後にGetNoが走る処理があり、 If Han.Bool = True Then がきます。 であれば、GetNoが走るため、プロパティは意味があるということで 良いでしょうか? >#「Bool」なんて名前のプロパティじゃ用途も想像できませんし・・・ >#何で「99999より上か否かを」判断する必要があるのかも良く分かりませんし・・・ 質問用に書き直しましたので、ネーミング等については流して おいてください。 というか、用途は想像していただかなくて構いませんので、 プログラム的な欠陥だけお答えいただけないかなぁ、と。 >頑張って連絡取ったほうが早いのでは・・・ それが出来れば最初からここに書いてませんてば。 それくらいは想像できませんか?

  • dsuekichi
  • ベストアンサー率64% (171/265)
回答No.1

レビュー者がどういう意味で指摘されたのか分かりませんが、 > プロパティの意味がないとか 私にも、このプロパティの意味(必要性)が分かりません。 存在意義(何故必要なのか?何の為にあるのか?何故プロパティでなければならないのか?)を説明してください。 納得のいく説明できないなら「いらない」ってことでしょうね。 #ひょとしたら「多少端折りましたが」の部分に必要な理由があるんでしょうか?

noname#32335
質問者

補足

test1クラスのほうで判断しているNo+Countの値が99999より上か否かを test2クラスで見る必要があったので、方法として記述したほうな形に なりました(他に思い浮かばなかった)。 「いらない」ということは、No+Countの値が99999より上か否かを 判断する方法がいくつかあると思うのですが、この場合はどうするのが 適しているのでしょうか?

関連するQ&A