クラス名の取得 への返答

投稿で使用できる特殊コードの説明。(別タブで開きます。)
本名は入力しないようにしましょう。
投稿した後で削除するときに使うパスワードです。返答があった後は削除できません。
返答する人が目安にします。相手が小学生か社会人かで返答の仕方も変わります。
最初の投稿が質問の場合、質問者が解決時にチェックしてください。(以降も追加書き込み・返信は可能です。)
※「過去ログ」について書くときはその過去ログのURLも書いてください。

以下の返答は逆順(新しい順)に並んでいます。

投稿者 るきお  () 投稿日時 2007/9/17 04:30:00
まず、基本に戻って回答します。 
>上記のように宣言し、Sample1クラスの中で "tmp" という名称を取得する方法はあるのでしょうか? 
ありません。 
 
>Newのときに New Sample1("tmpA") とかで.nameプロパティをセットしておけば 
上記のようなy4yamaさんが提示された代替案ならば可能です。 
 
が、同じくy4yamaさんが提示されているように。 
>private tmp_t as Sample1  = tempA  
のときにつじつまがあわなくなってしまいますね。 
まぁ、そういうことはしないという前提があるのかもしれませんが。 
 
とにかく、クラス側でインスタンス名を取得するという発想は面白いのですが、できないし、やらないと考えてください。 
今回のケースでは素直に(変数名ではなく)ファイル名をコンストラクタに渡すのがセオリーです。 
その際、変数名とファイル名が同じにするというのはありですが、あくまでも変数名は変数名、ファイル名はファイル名で別のものとして扱ってください。
投稿者 y4yama  () 投稿日時 2007/9/14 20:18:00
>>2 
一緒に勉強させていただいてます 
Newのときに New Sample1("tmpA") 
とかで.nameプロパティをセットしておけば、tmpA.Save() 
だけで引数は不要というのは、わかるんですが・・(これじゃダメ?) 
ところで、private tmp_t as Sample1  = tempA というようにtmp_tにはインスタンスtempA の参照を代入できますよネ?そうしたら、tmp_t.Save()は大変困りませんか。tmp_t.bmp を期待してますか?(余談ですが)  
詳しいかたのコメントをお待ちしま~す
投稿者 takeo  () 投稿日時 2007/9/14 18:37:00
y4yamaさん、こんにちは。 
すいません。もう少し詳細に書けばよかったかも。。 
期待したい事は、 
   
>public class form1   
 private tmpA as New Sample1   
 private tmpB as New Sample1   
>end class   
 
の場合、各クラス内部でBmp画像の保存を行おうとしてます。 
名称をそれぞれ 
tmpA.bmp  
tmpB.bmp 
としたい訳です。(配列で宣言した時は考慮してません) 
 
私の分野で、クラスの宣言数がソフトの種類により、名前の変更/数も膨大です。 
少しでもミスを少なくする為に、クラス内部で取得できないのかな?と思ってしまいました。 
クラスの呼び出し側でやればいいと言われればその通りなのですが。。 
不可能なのでしょうか?
投稿者 y4yama  () 投稿日時 2007/9/14 16:18:00
takeoさん、こんちは~ 
>そしてフォームの中で、  
>public class form1  
 private tmpA as New Sample1  
 private tmpB as New Sample1  
>end class  
>上記のように宣言し、Sample1クラスの中で "tmp" という名称を取得する方法はあるのでしょうか?  
 
逆に質問ですが、 
上のように2つNewしたときには、何が取得できることを期待していますか?
投稿者 takeo  () 投稿日時 2007/9/14 06:31:00
皆さんこんにちは。下記について質問させて頂きたいと思います。 
 
【概要】クラスを宣言した後に、宣言した名前をクラスの中で直接取得したい。 
(プロパティでも作成して呼び出し側から任意に書き込めば解決するのですが、その他の方法を探しています。) 
 
【例】 
まずクラスを作成します。 
public class Sample1 
 
End Class 
 
そしてフォームの中で、 
public class form1 
 private tmp as New Sample1 
end class 
 
上記のように宣言し、Sample1クラスの中で "tmp" という名称を取得する方法はあるのでしょうか? 
 
恥ずかしい質問内容なのかも知れませんが宜しくお願いします。