昨日私はPHPクラスを読んでいて、突然何か変わってしまいました。それはC#とPHPのコンストラクタに関するものでした。コンストラクタは正確に何ですか?
私の質問はコンストラクタとは何ですか?それはメソッドのようなことをし、メモリなどのクラスに必要なリソースを取ることができるクラスをインスタンス化するときに使用される特別なメソッドではありませんか?例えば、Bという名前の別のクラスを派生させ、Bのインスタンスを作成してBのコンストラクタを呼び出し、その親(A)にいくつかの引数を送ると、base(args)という名前の親クラスがあるとします。 (C#では)、parent :: __ construct(args)(PHPでは)を使用するので、親コンストラクタを呼び出して呼び出します。親のリソースを正確に取ることは望ましくありませんが、親コンストラクタを呼び出すだけですわたしたちのため。ここで何が起こりますか?
この場合、単に関数のように呼び出されたと思います! :\私は私の自己が明確かどう作られたかわからない...任意のあいまいさがある場合は掲載していません、と感謝;)
は私の方法により負の投票を与えることによって 感謝を更新しました... Microsoft Docs ここまで読んでみると、コードのブロックを保持する単純な関数以上のものです(しかし、あなたが言った違い、返り値などはありません) それはちょうど関数インスタンスが作成されたときに呼び出されました。なぜなら、それをプライベートにすると、それ以上インスタンスを作成できないのはなぜですか? なぜクラスを作成したいのですか?クラス名の末尾にa()を追加し、コンストラクタにargsを渡したい場合、それらを使って()を送信しますか? [人new_person =新しい人();] あなたは、このにも再び負の投票、あらゆる努力を示していない問題を考える場合:D
私はあなたが基本的にそこにいると思います。セマンティクスを使ってそれを強制する初期化メソッドです。コンストラクタに続く特別なブードゥーはありません。基本的には、通常は独立して呼び出すことができないメソッドです。 –
[C#コンストラクタの実行順序](https://stackoverflow.com/questions/1882692/c-sharp-constructor-execution-order)を参照してください。 。そこにはジョン・スケートからの良い答えがあります。 –