none
判斷變數的問題 RRS feed

  • 問題

  • 各位前輩好 :

    請問一個問題

    如果我有個function他有個參數x

    public void fun(object x)
    {
    //do something
    System.Console.Write(x);
    }

    我想判斷x為什麼型別不知道要怎麼做
    我只看到char.Isnumber類似這函數
    但double int float好像沒有

    我想要譬如說我輸入的是數字(不管是int double float)我可以去判斷他的大小(大於0或小於0)
    或者我輸入"null"那我就做其他動作
    或者我輸入文字,那我就判斷他是哪一個字母
    我有稍微找了一下MSDN但我對MSDN應該是還不夠熟吧
    沒有看到想要的東西
    所以趕快上來問問看不知道各位高手是否有這種經驗可以分享

    謝謝
    2008年11月13日 下午 04:41

解答

  • 判斷物件的型別用is
     
    Code Snippet
    if (x is int || x is float || x is double)
    {
        //TODO
    }
    else if (x == null)
    {
        //TODO else
    }
    else
    {
        //~~
    }

     

     

    2008年11月13日 下午 10:16

所有回覆

  • 判斷物件的型別用is
     
    Code Snippet
    if (x is int || x is float || x is double)
    {
        //TODO
    }
    else if (x == null)
    {
        //TODO else
    }
    else
    {
        //~~
    }

     

     

    2008年11月13日 下午 10:16
  • 判斷物件的型別,可用 GetType 取得物件型別

    Ex. System.Int32 ....

     

    2008年11月14日 上午 02:15


  • public void fun(object x)
    {
    System.Console.Write(x.GetType().ToString());
    }

    用以上方法,可以查到x變數的資料型別
    2008年11月21日 上午 09:20
  • 不好意思
    再補充問個問題

    print(object x)
    {
    //do something
    }

    我判斷完它的型別以後( 大部分是int double   string)
    但有什麼辦法可以判斷它的大小嗎

    if( x > 0 )  //這邊被顯示為錯誤
    {  }
    else
    {  }

    謝謝
    2008年12月16日 上午 08:46
  • 判斷完型別後要對他Unboxing才能操作
    if (x is int)
    {
    if ((int)x > 0)
    {
    }
    else
    {
    }
    }
    2008年12月18日 下午 05:18