- PR -

C#でClass.forNameのようなもの

1
投稿者投稿内容
みつん
大ベテラン
会議室デビュー日: 2004/05/21
投稿数: 100
投稿日時: 2004-05-27 15:40
みつんと申します。

本当に基本的な事でお恥ずかしいのですが、
JavaでいうところのClass.forName(String className)のようなことを
C#で行いたいのですが、どうにも探しきれません。
どなたかご存知でしょうか?
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2004-05-27 16:09
NAL-6295です。

System.Type.GetType(string typeName)

とか・・・
みつん
大ベテラン
会議室デビュー日: 2004/05/21
投稿数: 100
投稿日時: 2004-05-27 17:47
NAL-6295さん、早速の返答ありがとうございます。
ですが、うまく使いこなせません...。
これはSystem.Type型を返しますよね?
もしよろしければ、新しいクラスをインスタンス化している
サンプルなどつけていただけないでしょうか...。
すいません、すいません...。


Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-05-27 18:16
 「Javaでいうところの**」と言われても、Javaを知らない人にはわからないですよね。最初の質問では、Javaと.NETの両方がわかっている人でないと、質問の意図が正しく理解できません。


引用:

 右上に[検索]というリンクがあるのですが、おわかりですか?これをクリック(するとこのページが変わってしまうので、右クリックで「新しいページで開く」をクリック)してください。
キーワード:文字列 インスタンス
「すべてが含まれる投稿を検索」をクリック
会議室を「Insider .NET」に変更
「検索」ボタンをクリック

いのつち
ベテラン
会議室デビュー日: 2002/05/14
投稿数: 73
投稿日時: 2004-05-27 20:40
Java をよく知らないので、的を得ているのかどうか。
型名から、インスタンスを生成したいのであれば、

 System.Activator.CreateInstance とか、
 System.Reflection.Assembly クラスの CreateInstance メソッドなどが
 あります。

[ メッセージ編集済み 編集者: いのつち 編集日時 2004-05-27 20:42 ]
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2004-05-27 21:59
引用:

みつんさんの書き込み (2004-05-27 17:47) より:
NAL-6295さん、早速の返答ありがとうございます。
ですが、うまく使いこなせません...。
これはSystem.Type型を返しますよね?
もしよろしければ、新しいクラスをインスタンス化している
サンプルなどつけていただけないでしょうか...。
すいません、すいません...。




NAL-6295です。

んー。そもそも、Class.forName(クラス名)自体が、そのクラスの情報を返す(Class型)メソッドだったので、.NETでいうところの、System.Type型を返すメソッドを紹介したわけなんですが・・・
そういう用途であれば、いのつちさんの仰っているメソッドが正解ですね。

ついでなので、蛇足ですが・・・
JavaでもClass.forName(クラス名)はそのクラス名の情報を返すメソッドというのは前述のとおりですが、その後にインスタンスを生成するような用途を実現する場合は、

Class型の変数 = Class.forName(クラス名);
クラス名の型の変数 = (クラス名)Class型の変数.newInstance();

になります。



[ メッセージ編集済み 編集者: NAL-6295 編集日時 2004-05-27 22:17 ]

[ メッセージ編集済み 編集者: NAL-6295 編集日時 2004-05-27 22:27 ]
みつん
大ベテラン
会議室デビュー日: 2004/05/21
投稿数: 100
投稿日時: 2004-05-28 10:47
NAL-6295さん、いのつちさん、Jittaさん、
色々ありがとうございした。
確かに、質問の仕方が宜しくありませんでした。
以後気をつけたいと思います...(反省)

本当にありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)