• ベストアンサー

Property Letについて

TAGOSAKU7の回答

  • ベストアンサー
  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.6

理解困難ですか? 些細な事でも、わからなかったら遠慮なく聞いてくださいね。 Property関係を熟知するVBプログラマは、ぼくの周りにも少ないです。 流れがわかっていても、どうやったら効果的/有効的になるかがわかってないのです。だから、そういう人はPropertyを使用しようともしません。 むやみやたらにPropertyを使用するのはお奨めしないけど、たくさんのサンプルプログラムを作成し、慣れない関数を多用し、研究する努力が必要だと思います。 Propertyを使用しなくても済む部分をPropertyを使用してみるとかするのもいいと思います。 作成した後、本当にPropertyは必要なのか、Propertyを使用することによって、プログラミング的に効果的であったかなどの検証をして学ぶと、より早く身に着くと思います。 むずかしい分野ですが、がんばってくださいね。

saruno
質問者

お礼

大変ありがとうございます。 Getに関しては何とか理解できました。 本当に長い間付き合っていただきました。改めてお礼申し上げます。 あとは繰り返し自分でコードを書いてみて覚えるしかないと思います。 自分で使ってみて新たな疑問を作り出してまた改めて質問をさせていただきます。 その時はまたよろしくお願い致します。 本当にありがとうございました(深く深く礼)。

関連するQ&A

  • Property Let Property Get について

    こんにちは。 <Class1> Private myData(10) as String というクラスがあります。 Property Let とProperty Get を使って myData()の任意の位置のデータを Let/Get したいのですが どうやったら出来ますか? 教えてください。 よろしくお願いします。

  • 「ByRef」のヘルプが見たい

    「ByRef」の意味が分からないので、「ByRef」にカーソルをあてて、F1を押したら、 ------------------------------------ ByRef キーワード キーワード ByRef は、次の構文で使用します。 Call ステートメント Declare ステートメント Function ステートメント Property Get ステートメント Property Let ステートメント Property Set ステートメント Sub ステートメント ------------------------------------ と出て、ByRefの説明は見れないのですが、 どうやったらヘルプでByRefの説明を見る事が出来ますか? WEBじゃなくて、オフィスのヘルプで見る方法を教えてください。

  • プロパティープロシージャーについて

    簡単な年齢計算プログラムです。 書籍のサンプルなのでうまく動いています。 クラスの変数がPrivate strnameだったりするので そこへアクセスするためにプロパティプロシージャーを使っているというところまでは 判ったような気がしますが、 getとsetの関係がわかりません。 まず、 1.何をGetしているのか 2.なぜGetが先に来るのか、 3.Setの前にGetのReturnで返してますが実態は何を返しているのでしょうか?普通に考えると逆のような気がします。 根本がわかっていないのだと思いますが、どなたかお教え願います。 呼ぶ方 Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim person As New Class1() person.Name = TextBox1.Text person.Birthday = DateTimePicker1.Value.Date MessageBox.Show(person.Name & "さんの年齢は" & person.GetAge()) End Sub クラスの方。 Public Class Class1 Private strname As String Private datBirthday As Date Public Property Name() As String Get Return strname End Get Set(ByVal pro_name As String) strname = pro_name End Set End Property Public Property Birthday() As Date Get Return datBirthday End Get Set(ByVal pro_birthday As Date) datBirthday = pro_birthday End Set End Property Public Function GetAge() As Integer Return Int(DateTime.Today.Subtract(Birthday).Days / 365.25) End Function End Class

  • プロパティについて

    長年他の言語をやってきまして、VB.NETでピンと来ていない点があります。どなたかご教授ください。 あるクラスのプロパティとセッターゲッターについて2通りの 書き方ができると思っています。 以下の1、2の違いはありますでしょうか?入門書やネット上を検索 すると1の例で記述されますが、経験上2のような書き方をしてしまうため気になっております。 1. Private _hoge As Integer = 0 Public Property Hoge() As Integer  Get   Return _hoge  End Get  Set(ByVal Value)   _hoge = Value  End Set End Property 2. Private _hoge As Integer = 0 Public Function getHoge() As Integer  Return _hoge End Function Public Sub setHoge(ByVal val As Integr)  _hoge = val End Sub

  • VBA プロパティについて

    仕事で必用になり、プログラミングを学んでいる者です。 VBAでの基本的なことですが、教えていただきたいことがあります。 例えば・・・ Cells(i, j).value = "あああ" のようなステートメントがあったとき Cells(i, j) の部分をオブジェクト .value の部分をプロパティと考えていいですか? もしそうだとすると、 Cells(i, j).Interior.ColorIndex = i のようなステートメントは Cells(i, j) オブジェクト .Interior プロパティ .ColorIndex プロパティのプロパティ?? ということになるのでしょうか? ちょっと概念が整理できていません。 よろしくお願い致します。

  • C#でインターフェースのプロパティのアクセス修飾子

    お世話になります。 C#でインターフェースに定義した抽象プロパティで、アクセシビリティまで設定したいです。 例として抽象プロパティHelloのgetをpublic、setをinternalに設定したい場合、次の様に書くと怒られます。 string Hello { get; internal set; } ←"アクセシビリティ修飾子をインターフェイスのアクセサーで使用することはできません。" 抽象プロパティにsetを定義せず、サブクラスでinternalを設定して実装する分には怒られませんが、 この場合はサブクラスに対してsetの実装を強制できませんし、 当然API(インターフェース)型変数からsetの実装を呼び出せません。 全てのクラスはAPIからのみ利用させたいと考えていて、 かつプロパティのset、getで設定したいアクセス修飾子が異なる様な場合、 プロパティを使用せず自前でアクセッサを作るしか無いのでしょうか? 何かおいしい逃げ方がありましたらご教示いただけるとありがたいです。 宜しくお願いします。

  • cellsプロパティ列名をアルファベットに変える

    ●質問の主旨 cellsプロパティで表された列名をアルファベットに 変えるためにはどのようなコードを使えばよいでしょうか? 例)cells(4,5)→E列 ●質問の補足 cellsプロパティで取り出された行数を Rangeプロパティを表したいと考えております。 上記の例を使うと、 Range("cells(4,5)→E列 & 4")というプロパティを作成し、 Setステートメントを使用した「Rangeオブジェクト」に したいと考えております。 ご存知のかたご教示よろしくお願い申し上げます

  • プロパティのアクセス修飾子

    オート・インプリメント・プロパティで、 Property Prop2 As String = "Empty" と書いた場合の、Propertyのアクセス修飾子はPublicになるのでしょうか? あるVBの記述で、 Private CurrentValue As Integer Private Property Current As Integer Get Return CurrentValue End Get Set(ByVal value As Integer) CurrentValue = value    その他諸々の記述   End Set End Property というのがあるのですが、外部から、 Current += 1 などのようにアクセスしています。 この場合、Property Current As Integer のアクセス修飾子がPrivateになっているのですが、 Public とした場合と何が違うのでしょうか? ちなみに両方でやってみましたが、動作は変わりませんでした。 御経験のある方、御教示願えたらと思います。

  • ユーザーコントロールに選択プロパティを出す?

    VB.NET2005のWEBユーザーコントロールでプロパティを作り、それをコントロールを配置したときのプロパティウィンドウから選択させたいのですが、書籍やネット等を調べてもわかりませんでした。。。現状のソースは Public Property TEST() As String Get Return "" End Get Set(ByVal value As String) if value = 1 then me.close end if End Set End Property です。 これでプロパティウィンドウにTESTという項目はでますが、値を入力しないといけません。よくあるBackColorのプロパティのようにリストから選択できるようにしたいのですがどうしたらいいでしょうか? それともカスタムコントロールでないとできないのでしょうか?

  • VB2010 のユーザコントロールのプロパティ

    お世話になっております Windows7、VB2010 Expless で開発しております 後にVS2010のVBに移行する予定です ユーザコントロールでテキストボックスを作っております そこで、初期値を設定しようと思い設定をしたのですが反映されません Imports System.ComponentModel <DefaultValue(True)> Public Property Chk_Num() As Boolean Set(ByVal value As Boolean) If (value = True) Then blnChk_Num = value Else blnChk_Num = value End If End Set Get Return blnChk_Num End Get End Property <System.ComponentModel.DefaultValueAttribute(1)> Public Property Chk_ZenHankaku() As Integer Set(ByVal value As Integer) If (value >= 0 And value <= 2) Then '0以上2以下 blnChk_ZenHankaku = value Else 'マイナス、または3以上の場合は0にする blnChk_ZenHankaku = 0 End If End Set Get Return blnChk_ZenHankaku End Get End Property どちらの方法でも、Booleanの場合は「False」、Integerの場合は「0」になってしまいます また、初期化~プロパティ宣言間に、改行しても改行しなくても結果は同じです どうにか設定できる方法はありますでしょうか よろしくお願いします