c# 5.0入门经典笔记
c# 關(guān)鍵字 char 別名Char 單個16位Unicode字符。decimal 128位用于金融計算。
可以為null的類型(包括值和引用類型)都支持null合并運算符(??)
int? x = null
DebugWriteline(x ?? -1);
可以為null賦值給不可以為null,時用??,如果為null用右邊的默認值賦值。
可以為null變量相應(yīng)有方法:hasValue..
裝箱,取消裝箱
int? i = 36;
object boxed = i;
int? j = boxed as int?; //接收方必須是可以為null或引用類型,成功類型轉(zhuǎn)換就賦值,否則賦值null.
字段被聲明為變量,需要占用內(nèi)存空間,但屬性不需要,屬性同時滿足封裝性和抽象性。
信任并核實
Car car;
if(typeof(BMW).IsAssignableFrom(car.GetType()))
{
BMW bmw = (BMW)car;
}
C#中為了重寫基類成員,基類成員用virtul修飾,子類用override.
關(guān)鍵字sealed可修飾類和方法,密封不可繼承。
[Flags]修飾的枚舉時,可以使用邏輯運算OR創(chuàng)建新的組合值。
C#中結(jié)構(gòu)與類
結(jié)構(gòu):隱式繼承System.ValuType,隱式被密封,不能聲明默認構(gòu)造函數(shù),不能有析構(gòu)函數(shù)。
類: 隱式繼承System.Object
foreach( type identifier in expression )
{
....
}
@“this is ""example"" !"; //this is "example" ! @時只有”需要轉(zhuǎn)義,”“表示”
String.IsNullOrEmpty string是引用類型,可以為null,如果使用length會出錯。
Regex類,正則表達式類。
關(guān)鍵字checked 和 unchecked能夠顯式地控制溢出檢查,將覆蓋編譯器設(shè)置。
在C#中,Lambda使用Lambda運算符(=>),左邊形參列表,右邊為方法體。
.NET Framework提供了File,Directory和Path類。
Conditional("DEBUG")
類似?
#if DEBUG
。。。
#endif
調(diào)用C#對象的方法
var calculator = GetCalulator();
int sum = calculator.Multiply(7,8);
以反射方式調(diào)用方法
object calculator = Getcalulator();
Type type = calculator.GetType();
object result = type.InvokeMember("Multiply",BindingFlags.InvokeMethod,null,calculator,new object[]{7,8});
int sum = Convert.ToInt32(result);
///c#入門經(jīng)典第五版
第一章:C#簡介
CIL (Common Intermediate Language,CIL)
JIT Just-In-Time //把CLI編譯為專用于OS和目標機器結(jié)構(gòu)的梧桐代碼,這樣OS才能執(zhí)行應(yīng)用程序。
在編譯使用.NET Framework庫的代碼時,還是立即創(chuàng)建專用于操作系統(tǒng)的梧桐代碼,而是把代碼編譯為通用中間語言(Common Intermediate Language,CIL)代碼。
在編譯應(yīng)用程序時,所創(chuàng)建的CIL代碼存儲在一個程序集中,程序集包括:EXE\DLL,元信息,可選資源
GAC(Global Assembly Cache) 全局程序集緩存
不受CLR控制運行的應(yīng)用程序?qū)儆诜峭泄茴愋?#xff0c;如C++可以編寫這類應(yīng)用程序,但在C#中,只能編寫在托管環(huán)境下運行的代碼。托管代碼(CLR)有垃圾回收功能
note: 需要許多內(nèi)存才能運行的代碼應(yīng)自己執(zhí)行垃圾回收檢查。
相比C++,C#是一種類型安全的語言
C#應(yīng)用:
1.Windows應(yīng)用程序 //使用.NET Framework的Windows Forms模塊可以 簡便生成這類應(yīng)用程序
Windows Forms模塊是一個控件庫,用于UI,WPF有更靈活。
2.Web應(yīng)用程序 ?//.NET Framework包括Active Server Pages.NET(ASP.NET),使用c#通過Web Forms創(chuàng)建ASP.NET應(yīng)用程序
3.Web服務(wù) //還可創(chuàng)建WCF服務(wù)
通過.NET Framework的Active Data Objects.NET(ADO.NET)...可訪問數(shù)據(jù)庫訪問
第二章:windows consol app and windos Forms application
第三章:語法
#region *******
#endregion //注釋其間的代碼并顯示*****
變量類型
類型 別名
sbyte System.SByte
byte System.Byte
short System.Int16
ushort System.UInt16
.....
浮點類型三種 float/double/decimal
char System.Char
bool System.Boolean
string System.String
Console.WriteLine("{0} {1}.",myString,myInter); //其中{0 } {1} 都是點位符
對名稱空間用“."而不是c++中的"::"
int myInt = Convert.ToInt32(Console.ReadLine());
bool isLessThan10 = myInt < 10;
隱式轉(zhuǎn)換、
顯式轉(zhuǎn)換?
1. var1 = Type)var;
關(guān)鍵字checked\unchecked,檢查表達式的溢出檢查上下文 //build->advanced to set
2.使用Convert命令進行顯式轉(zhuǎn)換
enum enumName : byte
{
north = 1,
south = 2
}
foreach(<baseType> <name> in <array>)
{ ... }
多維數(shù)組
double[,] hillHeight = new double[3,4];
string myString = "A string";
char[] myChars = myString.ToCharArray();
<string>.TrimStart() <string>.TrimEnd() <string>.Split()
第六章:函數(shù)
static void ShowDouble(ref int val)
{
...
}
static int MaxValue(int[] intArray, out int maxIndex)
總結(jié)
以上是生活随笔為你收集整理的c# 5.0入门经典笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++编程风格(一)
- 下一篇: C#获取一些常用目录