C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[7]: 名前があるモノの名前の取得


(過去ログ 54 を表示中)

[トピック内 14 記事 (1 - 14 表示)]  << 0 >>

■30419 / inTopicNo.1)  名前があるモノの名前の取得
  
□投稿者/ 七篠 (20回)-(2008/12/23(Tue) 10:30:18)

分類:[C/C++] 

開発環境 : VC
言語   : C++

こんにちは。

列挙体の値やクラス、変数名など、名前が付いているものから、その名前の文字列を取得することは
可能でしょうか?

ご存じの方、いらっしゃいましたらご教授いただけると幸いです。
引用返信 編集キー/
■30420 / inTopicNo.2)  Re[1]: 名前があるモノの名前の取得
□投稿者/ 渋木宏明(ひどり) (1002回)-(2008/12/23(Tue) 10:53:50)
渋木宏明(ひどり) さんの Web サイト
> 列挙体の値やクラス、変数名など、名前が付いているものから、その名前の文字列を取得することは
> 可能でしょうか?

可能なものと不可能なものがあります。

C++/CLI で、対象がマネージ型であれば、リフレクションを使うことでかなり多くの情報を得ることができます。

ですが、標準的な C/C++ の範疇ではほとんど情報を得ることはできません。

処理系固有の仕組みを使ってもいいのであれば、VC++ の場合、デバッグ情報を利用するなどして、ある程度の情報を得ることができたと思います。


引用返信 編集キー/
■30421 / inTopicNo.3)  Re[2]: 名前があるモノの名前の取得
□投稿者/ やじゅ (887回)-(2008/12/23(Tue) 11:48:42)
やじゅ さんの Web サイト
> C++/CLI で、対象がマネージ型であれば、リフレクションを使うことでかなり多くの情報を得ることができます。
>

C++/CLI では無くC#ですが、GetPropertiesなどのキーワードが分かれば、
あとは調べられると思いますので、一応リンクしておきます。

列挙体の値を列挙するには? Enum.GetValues(typeof(列挙体名))
http://www.atmarkit.co.jp/fdotnet/dotnettips/006enumval/enumval.html

型(クラス、構造体など)のすべてのメンバを取得する
http://dobon.net/vb/dotnet/programing/typegetmembers.html

C# 引数やローカル変数の名前を取得する方法は?
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=43758&forum=7
引用返信 編集キー/
■30422 / inTopicNo.4)  Re[1]: 名前があるモノの名前の取得
□投稿者/ アキラ (138回)-(2008/12/23(Tue) 12:07:56)
アキラ さんの Web サイト
No30419 (七篠 さん) に返信

こんなのがあります。

変数名取得マクロ
http://d.hatena.ne.jp/faith_and_brave/20071116/1195228361
引用返信 編集キー/
■30423 / inTopicNo.5)  Re[2]: 名前があるモノの名前の取得
□投稿者/ ちゃっぴ (180回)-(2008/12/23(Tue) 14:14:35)
ちゃっぴ さんの Web サイト
ひどりさんも書いていますが、

> 処理系固有の仕組みを使ってもいいのであれば、VC++ の場合、デバッグ情報を利用するなどして、ある程度の情報を得ることができたと思います。


Symbol 使わなきゃどうにもならんでしょ。
引用返信 編集キー/
■30424 / inTopicNo.6)  Re[3]: 名前があるモノの名前の取得
□投稿者/ アキラ (139回)-(2008/12/23(Tue) 16:09:58)
アキラ さんの Web サイト
No30423 (ちゃっぴ さん) に返信

> Symbol 使わなきゃどうにもならんでしょ。

ひとつ前の私の発言読んでますか?
名前を文字列化することはできます。

引数で変数を渡したときに元の名前を取得することができない、とか
クラス名から基本クラスの情報やメンバの情報を取得することができない、とかの制限はもちろんありますけど
七篠さんの質問内容に対する回答としては十分だと思います。

ひどりさんも「どうにもならない」とは書いてないでしょう。
引用返信 編集キー/
■30425 / inTopicNo.7)  Re[4]: 名前があるモノの名前の取得
□投稿者/ 渋木宏明(ひどり) (1003回)-(2008/12/23(Tue) 17:25:57)
渋木宏明(ひどり) さんの Web サイト
> ひどりさんも「どうにもならない」とは書いてないでしょう。

マクロで変数名くらいはとれたよなぁ、とうっすら覚えてただけなんですけどね (^^;

あと、RTI もあるにはあるし。
引用返信 編集キー/
■30426 / inTopicNo.8)  Re[5]: 名前があるモノの名前の取得
□投稿者/ ちゃっぴ (181回)-(2008/12/23(Tue) 18:53:38)
ちゃっぴ さんの Web サイト
> ひとつ前の私の発言読んでますか?
> 名前を文字列化することはできます。

すいません。読んでいませんでした。
なるほど、source code level で弄れるのですから、compile 時に引数を文字列に置換しとけばいけるというわけですか。

C 言語 マクロ講座 # ## 編
http://uyota.asablo.jp/blog/2007/03/18/1311411

さすがです。

引用返信 編集キー/
■30430 / inTopicNo.9)  Re[2]: 名前があるモノの名前の取得
□投稿者/ 七篠 (21回)-(2008/12/23(Tue) 20:23:03)
みなさん、アドバイスありがとうございます。

変数名の取得はアキラさんの

No30422 (アキラ さん) に返信
> ■No30419 (七篠 さん) に返信
>
> こんなのがあります。
>
> 変数名取得マクロ
> http://d.hatena.ne.jp/faith_and_brave/20071116/1195228361

で完璧ですね。ありがとうございました。

ところで列挙型変数に入っている値の項目名を変数から取得することは可能ですか?
皆さんの回答を見ていると難しそうですが、できたら非常に便利だと思うので
蛇足質問という形でお願いします。

enum DayOfWeek
{
Sunday, ← 項目名
Monday,
(以下略
};

DayOfWeek day = Sunday;

day から "Sunday" を取得。
解決済み
引用返信 編集キー/
■30431 / inTopicNo.10)  Re[3]: 名前があるモノの名前の取得
□投稿者/ アキラ (140回)-(2008/12/23(Tue) 20:28:05)
アキラ さんの Web サイト
No30430 (七篠 さん) に返信

> enum DayOfWeek
> {
> Sunday, ← 項目名
> Monday,
> (以下略
> };
>
> DayOfWeek day = Sunday;
>
> day から "Sunday" を取得。

んー、できないですねぇ。
名前の文字列取得にはそんなに頼らないほうがいいですよ。
解決済み
引用返信 編集キー/
■30439 / inTopicNo.11)  Re[5]: 名前があるモノの名前の取得
□投稿者/ aetos (55回)-(2008/12/24(Wed) 11:35:24)
No30425 (渋木宏明(ひどり) さん) に返信
> あと、RTI もあるにはあるし。

R・田中一郎ですね!

# 揚げ足取り
引用返信 編集キー/
■30444 / inTopicNo.12)  Re[3]: 名前があるモノの名前の取得
□投稿者/ .SHO (513回)-(2008/12/24(Wed) 12:05:01)
No30430 (七篠 さん) に返信

> 皆さんの回答を見ていると難しそうですが、できたら非常に便利だと思うので
>
> enum DayOfWeek
> {
> Sunday, ← 項目名
> Monday,
> (以下略
> };
>
> DayOfWeek day = Sunday;
>
> day から "Sunday" を取得。

あまり便利そうに思えないのですが、それが便利なケースがあるなら
作っちゃえばいいと思います。

char **DayOfWeekName = { "Sunday", "Monday", … };
char *dayName = DayOfWeekName[day];
引用返信 編集キー/
■30445 / inTopicNo.13)  Re[6]: 名前があるモノの名前の取得
□投稿者/ 渋木宏明(ひどり) (1005回)-(2008/12/24(Wed) 12:10:20)
渋木宏明(ひどり) さんの Web サイト
> R・田中一郎ですね!

投降した後に気付きました ;-)
引用返信 編集キー/
■30447 / inTopicNo.14)  Re[7]: 名前があるモノの名前の取得
□投稿者/ アキラ (141回)-(2008/12/24(Wed) 12:25:53)
アキラ さんの Web サイト
RTTI(実行時型情報)ですね
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -