狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

C#基礎 =

admin
2017年2月7日 18:53 本文熱度 6916
1.       第一個C#程序

   

using System;

namespace
 aa

{

    
class
 MyFirstClass

    
{

       
static void
 Main()

       
{

          Console.WriteLine(
"This isn''t at all like Java!"
);

          Console.ReadLine();

          
return
;

       }


    }


}


   說明:

(1)       每個語句必須用一個分號(;)結尾

(2)       語句可以寫在多個代碼行上,不需要使用續行字符

(3)       單行注釋以“//”開頭,多行注釋/* …*/

(4)       Java一樣,所有的C#代碼都必須包含在一個類中

(5)       每個C#可執行文件都必須有一個入口點——Main()方法,該方法要么返回void,要么返回一個整數(int

2.       變量

2.1    變量的定義

        在c#中聲明變量使用下述語法:datatype identifier

       例如: int i

       無論變量的數據類型是什么,聲明變量的c#語法都是相同的。

       多個變量的聲明,如果類型相同,可以用一個語句聲明,如果類型不同,必須用多個語句聲明:

      例如:int x=10,y=20;// x and y are both ints

       int x = 10, bool y = true;// this won’t compile!

2.2    變量的初始化

       C#編譯器需要對變量初始化之后才能在操作中引用該變量,C#編譯器把未初始化的變量當作錯誤來看 待,這樣可以防止我們無意中從其它程序遺留下來的內存中獲取垃圾值。

        在C#中實例化一個引用對象需要使用new關鍵字。

       objSomething new Something(); // this creates a Something on the heap

2.3    變量的作用域

       一般情況下,確定作用域有以下規則:

      1) 只要字段所屬的類在某個作用域內,其字段也在該作用域內。

      2) 局部變量存在于表示聲明該變量的塊語句或方法結束的封閉花括號之前的作用域

      3) forwhile或類似語句中聲明的局部變量存在于該循環體內。

      4) 同名的局部變量不能在同一作用域內聲明兩次。

public static void Main()

{

   
int j = 20
;

   
for(int i=0;i<10;i++
)

   
{

      
int j=30;//Can''t do this -j is still in scope


      Console.WriteLine(j
+i);

   }
 

}


     5) 編譯器可以區分字段和方法中的局部變量。

using System;

namespace
 aa

{

   
class
 ScopeTest2

   
{

      
static int j = 20
;

      
public static void
 Main()

      
{

         
int j = 30
;

         Console.WriteLine(j);

         
return
;

      
{

   }


}


3.       常量

常量格式:const int a = 10;

C#中,只能把局部變量和字段聲明為常量。

說明:

1) 常量必須在聲明時初始化,且不能更改

2) 常量的值必須在編譯時用于計算。因此不能從一個變量中提取值來初始化常量。如果需要這么做,應使用只讀字段

3) 常量總是靜態的

4) 常量在程序中至少有3個好處:a)使程序更易于閱讀 b)使程序更易于修改 c)更容易避免程序出現錯誤

4.       預定義數據類型

C#把數據類型分為兩種:值類型和引用類型。

值類型直接存儲其值,數據存儲在堆棧中;引用類型存儲對值的引用,而數據存儲在托管堆上。

C#有15個預定義類型,其中13個是值類型,2個是引用類型(stringobject)。

13個值類型包括8個整數類型sbyte、short、int、long、byte、ushort、uint、ulong;2個浮點類型float、double;1個deciaml類型decimal;1個bool類型bool;一個字符類型char;

1) 如果代碼沒有對某個非整數值硬編碼,則編譯器一般假定該變量是double。如果想指定值為float,可以在其后加上字符f(或F float f = 12.3f;

2) decimal類型不是基本類型,所以在計算時使用該類型會有性能損失,要把數字指定為decimal,可以在數字后面加上字符m(或M decimal d = 12.3m;

3) bool值不能和整數值轉換,bool值必須是true或者false

4) C#中,可以在字符串前面加上字符@,那么字符串中的所有字符都看作是其原來的意思。

string filepath = @”C:\ProCSharp\First.cs”;

5.       流控制

1)條件語句(if語句、switch語句)

     aif子句中的表達式必須等于布爾值,當“==”誤寫成“=”時,會導致一個編譯錯誤。

     bcase的值必須是常量表達式——不允許使用變量,且常量不能相同(字符串可以作為測試變量)。

如果一個case子句為空,就可以從這個case跳到下一個case上,這樣就可以用相同的方式處理兩個或多個case子句。

C#中,switch子句里面case子句的排放順序是無關緊要的。

2)循環

C#除了for循環、while循環和do…while循環 以外增加了foreach循環。foreach循環可以迭代集合中的每個項目,但不能改變集合中各項的值。 如果需要改變各項的值,就應使用for循環。例如:

 

foreach(int temp in arrayOfInts)

 
{

Console.WriteLine(temp);

 }


3)跳轉語句(gotobreakcontinuereturn

   goto跳轉到程序中用標簽指定的另一行:

  

goto Label1;

        Console.WriteLine(“
this
 won’t be executed”);

   Label1:

        Console.WriteLine(“Continuing execution from here”);

   goto語句有兩個限制:不能跳轉到像for循環這樣的代碼塊中,也不能跳出類的范圍,不能退出try…catch塊后面的finally塊。

   break可以用于退出forforeachwhile、或do…while循環。

   continue只從循環的當前迭代中退出,然后在循環的下一次迭代開始重新執行,而不是退出循環。

   return用于退出類的方法,把控制返回方法的調用者。

6.       枚舉

枚舉是用戶定義的整數類型,在聲明一個枚舉時,要指定該枚舉可以包含的一組可接受的實例值。

public enum TimeOfDay

{

   Morning,Afternoon,Eveing

}


7.       數組

定義:int[] integers;

初始化:integers = new int[32];

所有的數組都是引用類型,并遵循引用的語義

8.       命名空間

命名空間提供了一種組織相關類和其它類型的方式,它時一種邏輯組合,而不是物理組合。

namespace CustomerPhoneBookApp

{

  
using
 System;

   
public struct
 Subscriber

   
{

   }


}


命名空間可以嵌套,注意不允許在另一個嵌套的命名空間中聲明多部分的命名空間。

為了避免命名空間輸入的繁瑣,可以用using語句來解決。

using System;

using Wrox.ProCSharp;

命名空間也可以用別名來代替:using alias = NamespaceName;

9.       Main()方法

C#程序是從Main()方法開始執行的,該方法必須是類或者結構的靜態方法,且返回類型必須是intvoid

如果程序包含多個Main()方法,編譯器就會返回一個錯誤,但是可以使用/main選項,顯示的告訴編譯器把哪個方法作為程序的入口點:

例如:csc MainExample.cs/main:Wrox.ProCSharp.Basics.MathExample

也可以為Main()方法傳送參數:

public static int Main(string[] args)

{

}

編譯好之后,可以在執行文件名后面加上參數:

ArgsExample /a /b /c

10.   控制臺I/O

Console.ReadLine()從控制臺讀取一行文本

Console.Write()將指定的值寫入控制臺窗口

Console.WriteLine()輸出的結果最后添加一個換行符

格式化顯示:

Console.WriteLine(“{0} plus {1} equals {2}”, i,j,i+j);

也可以指定寬度,{n,w} n是參數索引,w是寬度值,正值表示右對齊,負值表示左對齊

還可以使用格式字符串:

Console.WriteLine(“{0,9:c2}”,i);

最后,可以使用占位符來代替這些格式字符串:

double d = 0.234;

Console.WriteLine(“{0:#.00}”,d)

結果為:0.23

11. XML文檔說明

///<summary>

///   The Add method allows us to add two integers

///</summary>

///<returns>Result of the addition(int)</returns>

///<param name=”x”>First number to add</param>

///<param name=”y”>Second number to add</param>

 

編譯:csc /doc:Math.xml Math.cs

12. C#預處理指令

   預處理指令不會轉化為可執行代碼中的命令,但會影響編譯過程的各個方面。例如:可以使用預處理指令禁止編譯程序編譯代碼的某一部分。

   1#define#undef

     #define DEBUG 告訴編譯器存在給定名稱的符號

     #undef DEBUG   刪除符號的定義

     必須把#define#undef放在C#源代碼的開頭,在聲明要編譯的任何對象的代碼之前。

     #define本身沒有什么用,必須跟其它預處理指令結合使用。

   2#if,#elif,#else,#endif

     這些指令告訴編譯器是否要編譯某個代碼塊

     

int DoSomeWork(double x)

     
{

        
#if DEBUG


        Console.WriteLint(“x 
is ” + x);//這行代碼只有在定義了DEBUG后才會執行

        
#endif

     }


     #elif(=else if)#else 指令都可以用在#if塊中,也可以嵌套#if

3#warning #error

     當編譯器遇到它們時,會分別產生一個警告或者錯誤。如果遇到#warning,會給用戶顯示#warning指令后面的文本,之后編譯器繼續進行。如果遇到#error,會給用戶顯示#error后面的文本,作為一個編譯錯誤信息,然后會立即退出編譯,不會生成IL代碼。

4)#region和#endregion

     用于把一段代碼標記為給定名稱的一個塊,使代碼布局清晰明了

5)#line

     用于改變編譯器在警告和錯誤信息中顯示的文件名和行號信息。這個指令用得不多。


該文章在 2017/2/7 18:53:21 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved