資料類型
一、基礎資料類型/基本類型:值類型(結構)
- byte,sbyte 一個位元組 0~2^8-1
- short,ushort 兩個位元組 0~2^16-1
- int,uint 四個位元組 0~2^32-1
- long,ulong 八個位元組 0~2^64-1
- float 四個位元組 有效位為7位
- double 八個位元組 有效位為15位\
- decimal 十六個位元組 有效位為28~29
值類型進行轉換:
隐式轉換(自動轉換):double d=12;低級轉進階
顯式轉換(強制性轉換):int i=(int)12.5;進階轉低級,資料丢失;
靜态類提供一系列值類型轉換方法:
Convert
特殊類型(引用類型):string密封類,不可以繼承,同時字元串不可以被修改;
stringBuilder:可變字元串;
string:不可修改的字元串;
數組:一維數組:一組資料集合;
1.存儲相同類型的資料;
2.資料可以通過下标通路;
3.int[] arr={};直接定義一般隻限于聲明數組時初始化資料;
int[] arr;
arr={};//錯誤的,不成立
int[] arr=new int[長度];
int[] arr=new int[]{,,,};
二維數組:
多元數組:int[,] arr={{},{},{}};int[,] arr=new int[行數,列數];
交錯數組:int[][] arr=new int[行數][];
int[,] arr={{10},{200},{3}};
arr[0,0]=12;//{{12},{200},{3}}
int[][] arr=new int[3][]{new int[]{10},new int[]{200,100},new int[]{3}};
arr[1][1]=300;
//{{10},{200,300},{3}}
面向對象:string datetime
1.類:程式中基本機關;
1)引用類型
2)一個模闆
3)對一類具有相同屬性和方法的對象的集合,抽象統稱;
2. 對象,萬物皆對象,類的執行個體化;
3.封裝: 将資料和函數集合到一個個單元(類)中;
作用:儲存資料安全性,防止資料被随意修改;
一般資料存儲在字段中的,通路通過屬性,資料處理用函數;
注意:單一性
class A{
private string name;
public string Name{
get{
return name;
}
set{
name=value;
}
}
public void Move(){
}
}
A a=new A();
自定義類時,未定義構造函數,那預設會自動添加一個無參構造函數;
自定義類時,定義構造函數,預設不建立;
類擁有執行個體成員:字段,屬性,方法,索引器,事件;
類擁有常量,靜态成員;
繼承:子類隻能繼承一個父類,繼承該類中所有非私有的成員;
做用:
1.節省開發時間,提高代碼重用性;
2.進行代碼擴充;(例如List)
抽象類:
1.不可以執行個體化
2.可以定義抽象成員:屬性,方法,索引器
3.子類繼承抽象類必須重寫抽象成員;
abstract class F{
public abstract string Name{get;}
public abstract void Move();
}
class Son:F{
public Son():base(){
}
//重寫抽象成員
public override string Name{
get{
return "";
}
}
public override void Move(){
}
}
base表示父對象的引用
base()調用父類中構造函數
base.屬性 通路父對象的方法;
base.方法()
base.字段
繼承:重寫,通過重寫達到擴充的功能;
接口:一套文法規則,一個模闆;
interface IAction{
string Name{get;}//預設都是public
string GetName();
}
子類可以實作多個接口
class Son:F,IAction,IComperable{
//重寫所有的方法
public string Name{get{return “”;}}
public string GetName(){}
public int CompareTo(Object obj){}
}
抽象類可以繼承抽象類,可以實作接口;
接口可以繼承接口;
接口不可以執行個體化;
抽象類,接口:多态;
泛型:延遲定義類型,直到使用時再确定類型;
class A{
T[] arr;
public void Move(K j){
K i=j;
}
}
索引器:類似屬性,可以通過傳入不同參數值傳回不同結果;
public string this[int index]{
get{
return index+”a”;
}
}