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

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

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.69239 の関連記事表示

<< 0 >>
■69239  Re[1]: Type.GetProperties時の構造体判別
□投稿者/ 魔界の仮面弁士 -(2013/12/10(Tue) 18:19:37)
    No69236 (DD. さん) に返信
    > 環境:VS2008+.Net3.5 Win7
    言語は何でも良いのですね?
    とりあえず C# で回答します。


    > 例えばLocationプロパティはPoint構造体かと思いますが、
    > ToString時と同じような出力のされ方となります。({X=225,Y=225})
    どのように出力しているのか分かりませんが、GetValue の戻り値は、
    この場合は「Point 構造体を格納した object 型」となる筈ですよ。


    > IsClassはもちろんfalse、IsValueTypeでは他の値型との判別がつかず、、、
    「他の値型」とは、何を指していますか?

    自分の認識では、少なくとも C# で値型といえば
    「構造体」と「列挙体」だけという認識です。
    http://msdn.microsoft.com/ja-jp/library/s1ax56ch%28vs.90%29.aspx



    > 構造体であるか判別する術はあるのでしょうか?
    たとえば DialogResult は 列挙型ですが、これは IsEnum で判定可能ですよね。

    int は Int32構造体なので OK でしょう。
    int? も Nullable<int> 構造体なので OK。
    両者を区別したいなら「t.IsGenericType && t.GetGenericTypeDefinition() == typeof(Nullable<>)」。

    プリミティブ型かどうかなら、IsPrimitive プロパティです。


    # ちなみに、DateTime 型は VB では組み込み型ですが、
    # VB で GetType(Date).IsPrimitive と書いても False を返します。
記事No.69236 のレス /過去ログ118より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -