- ベストアンサー
C#オブジェクトの動的生成と廃棄
- C#でオブジェクトの動的生成と廃棄する方法を教えてください。
- Delphiではオブジェクトの動的生成と廃棄は Temp := TStringList.Create; Temp.Free; のように行いますが、C#ではどうするのでしょうか?
- C#を学んでいるが、オブジェクトの動的生成と廃棄する方法が分からない。C#の参考書では解説が見当たらない。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
生成にはnewを使用します。破棄には、そのオブジェクトのクラスに、破棄のためのメソッドがあるので、それを一般的には使用します。 ※ もしかしたら、以下のようなことがご希望でしょうか。 コントロールを実行時に作成する https://dobon.net/vb/dotnet/control/addcontrol.html コントロールの配列を作成する https://dobon.net/vb/dotnet/control/buttonarray.html ※ C#を検索キーワードにしても、情報は見つけにくい印象です。NetFrameworkをキーワードにしたほうが良さそうです。 もしくは、まず、C#やVB.netのサンプルコードを公開しているサイトを探します。そのサイトで目的のものが無いか検索するか、Googleの検索でサイトを限定する、site:といった検索演算子と検索キーワードを使います。 以下はGoogleの演算子について。 https://support.google.com/websearch/answer/2466433?hl=ja 以上、参考にならなかったらごめんなさい。
その他の回答 (1)
- ubku
- ベストアンサー率37% (227/608)
ちょうどDelphiをかじり始めたところです。 間違っていたら逆にご指摘ください。 C#は C++ 等と仲いいのかと思っていたら、C# いくつかの部分を Pascal からも取り入れたそうです。それはさておき、 Temp := TStringList.Create; は C# では temp = New Class1(); のようになります。 New キーワードを付ける。 宣言も Constructor とは書かない。ではコンストラクタと普通のメソッドをどう区別するかと言えば、クラス名と同じ名前のコンストラクタ名を付ける事になっています。デストラクタはコンストラクタ名の前に~を付けた名前になります。(~Class1) しかし、Temp.Free; に該当するものは デストラクタ-ではなくDispose()でしょう。 ただし、デストラクタ-とDispose()はどちらかだけあれば良いのではなく両方で補完しあいます。 ところで、パソコンは買われないのですか?Windows10にすれば今のDelphiは個人なら無料で使えますよ。
お礼
丁寧な回答まことにありがとうございました。Delphiを開発したスタッフがMicrosoft に移りC#を開発したということは昔から知っていました。当然似ているところもあると思います。 > Delphiは個人なら無料で使えますよ。 ああ、そうなのですか。どうしようかな(笑)。
お礼
丁寧な回答まことにありがとうございました。 > もしかしたら、以下のようなことがご希望でしょうか。 その通りです。だいたい雰囲気はわかりました。ぼちぼちやっていきます。