• ベストアンサー

関数のプロパティ

 まるっきりわからないので、取り止めのない話になってしまいますが普通、関数で引数・返り値・リターン値ってありますよね。それ以外に関数自体がプロパティを持っていてそれがもう1つの引数や返り値になるってチョコって聞いたんですけど、、。それでGetやLetを使うそうなんですけど、、。どなたか知りませんか?

質問者が選んだベストアンサー

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

>DLLの名前を変えた 変えたとは? ActiveX DLLにしたのですか?そのDLLを、エクスプローラなどで、直接名前を変更したと言うことですか? >クラスの名前を変えた コンパイルしたDLL内部のクラス名ですか?それともカレントプロジェクトの組み込まれたクラスの名前ですか? >が正常に動いてるっぽいんです。(リターン値が返ってくるんです。) 正常に動いているとは?問題ないのでは? 何が、どう、だめなのでしょうか。 症状がまだわかっておりません。

HUKAHIRE
質問者

お礼

 質問の意味がわかりませんよね。わからなすぎてパニック状態です。また新しく質問を建てますので宜しくお願いします。まだ、質問の仕方やマナー、返答のスピードなど失礼が多くて大変申し訳ありません。いつも質問する頃には頭がぐちゃぐちゃなんです、、スミマセン。

その他の回答 (4)

  • haporun
  • ベストアンサー率40% (230/562)
回答No.5

自分で作ったDLLなら、同じプロジェクトグループ内の他のプロジェクトの実行によってデバッグできますが、面倒くさいです。 また、他のプログラムに呼び出してもらわなくても、イミディエイトウィンドウを使って、定義したクラスのインスタンスなどは作成できますよ。 ちなみに、主題が変わったので新しくスレッド建てませんか? 他にも回答者募るために。

HUKAHIRE
質問者

お礼

 質問の意味がわかりませんよね。わからなすぎてパニック状態です。また新しく質問を建てますので宜しくお願いします。まだ、質問の仕方やマナー、返答のスピードなど失礼が多くて大変申し訳ありません。いつも質問する頃には頭がぐちゃぐちゃなんです、、スミマセン。

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

症状をお聞かせください。 Debugできない。。。とは? プロジェクトが立ち上がらない? 注意をうながすメッセージが何か出ませんか? 状況が把握できておりません。

HUKAHIRE
質問者

補足

 おひさしぶりです。私の能力以上のことをやっているもので、またしても何をやっているのかわからないのですが数日までは動いてました。しかしDLLの名前を変えた、クラスの名前を変えた。それぐらいしか記憶がないのです。が正常に動いてるっぽいんです。(リターン値が返ってくるんです。)

  • haporun
  • ベストアンサー率40% (230/562)
回答No.2

それは、関数の戻り値が、プロパティを持つオブジェクトなのです。 たとえば、 TextBox1.Parent ってのはForm1が返ってきます。 プロパティですが関数と同じです。 TextBox1.Parent.Caption = "Form1" TextBox1.Parentをなん度も書くと、TextBox1.Parentという関数がなん度も呼び出されることになります。 Parentは変数ではないのです。 だから、パフォーマンスが低下します。 そういうときは一時変数に格納するのが普通です。 Dim P As Form Set P = TextBox1.Parent P.Command1...... P.Caption = "hogehoge" P.Visible = False . . . ってなかんじに。 プロパティというのは、関数と同じといいましたが、次の点が違います。 ○ 左辺値になれる  Prop(arg) = hoge ○ 戻り値を受け取らずに実行できない  Prop arg '不可 関数なら  Func arg とすれば、実行できますが、プロパティはムリです。

HUKAHIRE
質問者

お礼

 お礼も大変遅れてしまってて、、。なんだかプロパティっていう言葉に振り回されてしまって皆さんのご好意に感謝するのさえ忘れてしまっていたかのようでした。ありがとうございましたね。

HUKAHIRE
質問者

補足

こんにちわ、大変大変ご無沙汰様です。調べに調べてなんとか形になりまして関数として機能していたのですが、、。数日前からDegugができない、、。ファイル名などを整理したから?かな。なにか思い当たる点ってありますか?私なりには思い当たる点は試したんですけど、、。宜しくお願いします。

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

[Property Letについて]で答えましたので、そちらを見てください。

参考URL:
http://oshiete1.goo.ne.jp/kotaeru.php3?q=161765
HUKAHIRE
質問者

お礼

こんにちわ、大変大変ご無沙汰様です。調べに調べてなんとか形になりまして関数として機能していたのですが、、。数日前からDegugができない、、。ファイル名などを整理したから?かな。なにか思い当たる点ってありますか?私なりには思い当たる点は試したんですけど、、。宜しくお願いします。

HUKAHIRE
質問者

補足

質問の検索に「Property Let」と言う言葉で検索しなかったので気が付きませんでした。まず、自分で試してみます。わからない点が必ず出てくると思いますが、また宜しくお願いします。

関連するQ&A

  • C言語の関数について。

    学校の課題がわからないので教えてください。 1. 次の関数recfunc()は関数内で自分自身を呼び出す再起関数である。 int recfunc(int x){ if(x<=0)return -1; else if(x==1) return 3; else return 3*recfunc(x-1)-2; } 引数に1,2,3,4,5,...を与えたときの返り値を求めよ。その結果から、一般に 整数値nが与えられたとき、どのような値が計算されるか推測せよ。 一体何を返す関数だろうか?またどのようにその計算が実現されているか を簡潔に述べよ。 2.どのような再帰関数も、再帰を用いない関数に書き換えることができる。 問題1の関数recfunc()と同じ引数、同じ返り値をもつ再帰を用いない関数 func()を作成せよ。 2問も質問してすみません。 このプログラミングのレポートを提出しなくてはならないので困ってます。 何卒よろしくお願いします。

  • Property Let Property Get について

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

  • 関数の引数に 値を入れることを 渡す その関数が結

    関数の引数に 値を入れることを 渡す その関数が結果を出すことを 返す とか 返り値戻り値 という この認識であっていますか?

  • [Haskell]handle関数がうまくいかない

    RealWorldHaskellという本を読んでいて解決できないところがあったので質問します。 Control.Exceptionには例外を扱うhandle関数というものがあります。 型シグネチャは Exception e => (e -> IO a) -> IO a -> IO a です。 1つ目の引数に例外を捉えた場合実行する関数を、2つ目の引数に例外を投げる可能性のある関数を与えます。 1つ目の引数の関数の返り値の型と2つ目の引数の型は同じでなければなりません。 次の関数はhandle関数を利用して安全にファイルサイズを取得する(つもりで作った)関数です。 getFileSize :: FilePath -> IO (Maybe Integer) getFileSize path = handle (\_ -> return Nothing ) $ bracket (openFile path ReadMode) hClose $ \h -> do size <- hFileSize h return (Just size) この関数がうまくいきません。 具体的に言えばコンパイルすると handle (\_ -> return Nothing ) の部分で Ambiguous type variable `e0' in the constraint: とエラーは吐きます。 しかし、返り値の型はNothingでMaybe Integerと合致していると思います。 なのにAmbiguousです。 なぜこうなるのかわかりません。 ちなみにControl.OldExceptionでもhandle関数が定義されていますが、ghcのバージョンが新しいせいか(7.0.2)コンパイルできません。 なのでControl.Exceptionしか使えません。 よろしくお願いします。

  • C言語:関数の返り値と引数について

    C言語:関数の返り値と引数について C言語の関数を作るとき、ほしい値とかを引数にして渡す場合と、そのまま返り値で渡す場合の二種類がありますよね? 例えば、 ・void Smooth( Image *src, Image *dst, int param ); ・Image *Smooth( Image *src, int param ); みたいな感じで mallocとかは返り値で渡してますけど、opencvの関数(例えばcvSmooth)とかは引数にしてます これって使い分けとかあるんでしょうか?

  • 戻り値と返り値の違い

    タイトルの通りの質問内容です。 僕が調べた限りは「同じ」と言う意見が多数でした。 中には ・参照渡しした引数の関数通過後の結果が戻り値、  関数自体が返すのが返り値 とか ・引数なしの関数で戻るのが戻り値、引数ありの関数で  戻るのが返り値 とかはたまたその逆とか、混沌としています。 気になります。

  • 関数をプロパティとして代入する際

    認識が合っているかどうか怪しいのですが、 関数をプロパティで代入する際の引数についての質問ですー。 簡単なサンプルですが、ルート直下にaaaと出力する関数trを定義し、 ルートのマウスダウンに当てます。 _root.onMouseDown=tr; function tr() { trace("aaa"); } この場合はきちんと"aaa"と出力されるのですが、 下記のようにtrに引数を持たせた場合、 プロパティとしてマウスダウンに当てることは可能なのでしょうか? function tr(str:String){ trace(str); } ↓ _root.onMouseDown= ??? 下記のように普通にfunctionから呼び出すしかないのでしょうか? _root.onMouseDown=function(){ tr("aaa"); } 宜しくお願いします。

  • 関数でxml::simpleが使えない。

    AWSがらみで以下のようなことがしたいです。 --------------- my $url = 'amazon web service RESTのURL'; my %XMLtree = xmlget($url); sub xmlget{ my $url = shift; my $content = LWP::Simple::get($url); #xml->hash変換 my $xs = new XML::Simple(); my $XMLtree = $xs->XMLin($content); return $XMLtree; } ----------------------- しかしハッシュを関数の引数や返り値にすると上手く動きませんでした。 そこでreturnで値を渡さずに、globalで%XMLtreeを宣言してXMLinの値を代入しようとしたのですがうまくいきません。 他にもリファレンスを渡してみたりしたのですが上手くいきません。 よく考えたら$XMLtreeはハッシュのリファレンスの塊なので、トップのアドレスを渡しても、関数を抜けてしまえば実体は消えます。(ですよね?) ハッシュのリファレンスの塊である$XMltreeを関数から外側に渡すにはどうすればいいでしょうか? それとも全く別の問題なのでしょうか?

    • ベストアンサー
    • Perl
  • 返り値と引数が知りたいのですが。

    クラスCFileのメンバー関数の機能でOPENとREADの返り値と引数が知りたいのですが。 自分でも調べたんですが。 READの返り値はUINTで引数はvoid* pBufferとUINT nCountであってるでしょうか? OPENの返り値はBOOLでいいのでしょうか?引数がわかりませんでした。 それと機能の意味なんですがOPENはファイルを開く以外にも意味はあるのでしょうか。 よろしくお願いします。

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

    簡単な年齢計算プログラムです。 書籍のサンプルなのでうまく動いています。 クラスの変数が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

専門家に質問してみよう