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