顯示具有 C# 標籤的文章。 顯示所有文章
顯示具有 C# 標籤的文章。 顯示所有文章

2013年10月9日 星期三

[ C# ] Call by Reference

    剛踏入C#的領域裡面,從C/C++這領域跳過來後。以前一直超常使用指標跟參考的我,頓時覺得要用到指標跟參考時還要特別選擇unsafe mode感覺有點雞肋阿。

    難道真的只有一種方法嗎?最近剛好找到關鍵字 ref,一個可以用在方法宣告上把參數變成傳址的方式。突然有點想哭的感覺,這就是熟悉感阿阿阿阿阿!!!


code :

  class Program
  {

    static void Main( string[] args )
    {

      int refValu = 0;

      PrintText( ref refValu );
      PrintText( ref refValu );
      PrintText( ref refValu );

      Console.ReadKey( true );

    }

    static void PrintText( ref int count )
    {

      Console.WriteLine( count );

      count++;

    }

  }

2013年9月23日 星期一

[ C# ] var 隱含型別

    碰到C#後,有種型別叫做 var。此宣告後的變數型別會在編譯期決定。例如以下:


  • var intVar    = 10;
  • var strVar    = "Hi";
  • var charVar = 'C';

    宣告完後,用GetType()方法取得Name屬性就可以知道在編譯期時,變數被宣告成哪種型別。
  • Console.WriteLine( intVar.GetType().Name );
  • Console.WriteLine( strVar.GetType().Name );
  • Console.WriteLine( charVar.GetType().Name );
    可以得到型別方別是: Int32 / String / Char。

    我在找尋 var 型別的運用及範例時,看到由前輩分享的一句話:

右決議型別

    覺得蠻有感覺的一句話,型別 / 型態 是右式做決定的。至於 var 的功用、起源及優點等,網路上很多例子及樣板可以找到就不累述了。

    Enjoy it.

2013年9月22日 星期日

[ C# ] Null Type

    以前在C / C++ 裡面還蠻常使用到 null,到了C#中發現一般的型態不能指定為null。如下:







    只要將 宣告式後加上? 例如 int? tempValue; 後便可指定null type給變數了。自然在VS上也看不到錯誤了。

    特別注意的是假設此型別本身支援null type就不能特別宣告了,因為本身已經支援。

    Enjoy it.

[ C# ] 中實現 C/C++ System Pause 的方法

    剛接觸 C# 不久,一開始的第一個Hello World 程式在按下F5(偵錯)之後一瞬即逝。人在電腦前待了幾秒才發現 C# 的主控台應用程式不會像 C / C++ 一樣自動生成 pause,且也無類似的方法可供呼叫。

    幸好,google search後發現有啟動但不偵錯的方法:Ctrl + F5。

    但畢竟是一個coder,就想找幾個實現他的方法。有以下兩種:


Call dll : 
  • 在程式開頭加入 using System.Runtime.InteropServices; 
  • 然後 in class 內加入 
  • [DllImport( "msvcrt.dll" )]
  • static extern bool system( string str );

Code : 
  •       Console.Write( "Press any key to continue . . . " );
  •       Console.ReadKey( true );

    Enjoy it.