真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

《C#:二維三維圖形繪制》閱讀記錄-創(chuàng)新互聯(lián)

第一部分 :C#的基本數(shù)據(jù)類(lèi)型、數(shù)值類(lèi)型、圖形基礎(chǔ)

任何一門(mén)語(yǔ)言,基礎(chǔ)知識(shí)非常重要。就昨天所遇到的問(wèn)題:數(shù)據(jù)運(yùn)算得到的值是 0 。程序的運(yùn)算不是我們所學(xué)的數(shù)學(xué)運(yùn)算,只用加減乘除就能直接得出結(jié)果。還要使用數(shù)據(jù)類(lèi)型來(lái)使這個(gè)數(shù)的結(jié)果是我們所想要的。比如使用int類(lèi)型得到的值永遠(yuǎn)是int的,并且會(huì)進(jìn)行向下取值。要得到準(zhǔn)確的數(shù)值可以選擇使用double類(lèi)型。
1.C#數(shù)據(jù)類(lèi)型及轉(zhuǎn)換
2.類(lèi)的創(chuàng)建與使用
3.類(lèi)的繼承和多態(tài)
4.接口創(chuàng)建與實(shí)現(xiàn)
5.委托與事件

成都創(chuàng)新互聯(lián)專(zhuān)注于甘德企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,購(gòu)物商城網(wǎng)站建設(shè)。甘德網(wǎng)站建設(shè)公司,為甘德等地區(qū)提供建站服務(wù)。全流程按需定制設(shè)計(jì),專(zhuān)業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)專(zhuān)業(yè)和態(tài)度為您提供的服務(wù)第一章 c#語(yǔ)言基礎(chǔ) 1.1 數(shù)據(jù)類(lèi)型 1.1.1簡(jiǎn)單類(lèi)型

整數(shù)類(lèi)型、布爾類(lèi)型、字符類(lèi)型、浮點(diǎn)類(lèi)型、decimal
例如:byte、short、int、long、uint(無(wú)符號(hào)32位整數(shù))、
float、double
decimal:用于財(cái)務(wù)和貨幣計(jì)算的128位數(shù)據(jù)類(lèi)型。例如:decimal myMoney = 100.3m;
布爾類(lèi)型:C#中邏輯量只有 true 和 false。

1.1.2結(jié)構(gòu)類(lèi)型

結(jié)構(gòu)類(lèi)型是一種值類(lèi)型。而類(lèi)類(lèi)型是一種引用類(lèi)型
結(jié)構(gòu)主要用于創(chuàng)建小型的對(duì)象以節(jié)省內(nèi)存,如:復(fù)數(shù)、坐標(biāo)系中的點(diǎn)、字典中的“鍵-值”對(duì)都是結(jié)構(gòu)的典型示例。

using System;
struct Rectangle
{public int x,y;
	public int width,height;
	public Rectangle(int a,int b,int w,int h)
	{x=a;
		y=b;
		width=w;
		height=h;
	}
}

class TestStruct
{public static void Main()
	{Rectangle myRect;
		myRect.x = 20;
		myRect.y = 30;
		myRect.width = 200;
		myRect.height = 300;
	}
}
1.1.3 枚舉類(lèi)型

用于聲明一組命名的常數(shù)。每種枚舉類(lèi)型均有一種基礎(chǔ)類(lèi)型,此基礎(chǔ)類(lèi)型可以是除char類(lèi)型外的任何類(lèi)型。
枚舉元素的默認(rèn)基礎(chǔ)類(lèi)型為int。例如:

enum WeekDay{Sun,Mon,Tue,Wed,Thu,Fri,Sat}
不同元素的值可以相同。
如果枚舉元素的數(shù)據(jù)類(lèi)型不是int型,則可以用如下方式進(jìn)行聲明。
enum Color:long{Red,Green,Blye};

示例:使用枚舉
using System;
public class TestEnum
{enum Range:long{Max=214723233L,Min=255L}
	public static void Main()
	{long a = (long)Range.Max;
		long b = (long)Range.Min;
	}
	// 下面再看一個(gè)例子:
	enum Color{Red=Green,Green,Blue}
}
1.1.4 數(shù)組類(lèi)型

是由抽象基類(lèi)System.Array派生的引用類(lèi)型,代表一組相同類(lèi)型變量的集合,其中每一個(gè)變量稱(chēng)為數(shù)組的元素。
數(shù)組元素可以為任意類(lèi)型,包括數(shù)組類(lèi)型。
對(duì)數(shù)組元素的訪(fǎng)問(wèn)是通過(guò)數(shù)組下標(biāo)來(lái)實(shí)現(xiàn)的。
聲明一個(gè)數(shù)組時(shí),方括號(hào)必須跟在類(lèi)型后面,例如: int[] color
可以指定數(shù)組的長(zhǎng)度 : int[5] color;

1.一維數(shù)組和多維數(shù)組

int[] a = new int[3];
// 為每個(gè)數(shù)組元素賦值,完成初始化
a[0] = 1;
a[1] = 2;
a[2] = 3;
// 聲明一個(gè)2行2列的二維數(shù)組如下。
int[,] a = new int[2,2];
// 為每個(gè)數(shù)組元素賦值,以完成初始化
a[0,0] =1;
a[0,1] =2;
a[1,0] =3;
a[1,1] =4;
// 聲明一個(gè)三維數(shù)組
int[,,] b = new int[3,2,2];
1.1.5 類(lèi)類(lèi)型

類(lèi)是C#中最重要的組成部分,也是C#基礎(chǔ),它用來(lái)生成新的引用類(lèi)型。類(lèi)是一種數(shù)據(jù)結(jié)構(gòu),
object 、 string

1.1.6 類(lèi)型轉(zhuǎn)換

隱式轉(zhuǎn)換、顯式轉(zhuǎn)換、用戶(hù)自定義轉(zhuǎn)換
例如: int a = 100; float b=a;

1.2 類(lèi)

所有內(nèi)容都被封裝在類(lèi)中,類(lèi)是C#基礎(chǔ)。
(1)類(lèi)聲明
class關(guān)鍵字、類(lèi)名、類(lèi)體
類(lèi)修飾符包括 new、public、protected、internal、private、abstract
聲明一個(gè)Person類(lèi):

using xxx;
public class Person
{private string name;
	private int age;
	private long ID;
	public Person(string n,int a,long I)
	{name = n;
		age = a;
		ID = I;
	}
}
該類(lèi)聲明了三個(gè)私有數(shù)據(jù)成員 name、age、ID。兩個(gè)共有函數(shù)成員Person和Display

(2)創(chuàng)建類(lèi)實(shí)例
聲明了類(lèi)之后,就可以通過(guò)new 關(guān)鍵字來(lái)創(chuàng)建類(lèi)實(shí)例,類(lèi)實(shí)例是一個(gè)引用類(lèi)型的變量。類(lèi)實(shí)例創(chuàng)建的格式為 : 類(lèi)名 實(shí)例名 = new 類(lèi)名(參數(shù)) Person p = new Person()
實(shí)際上,是使用new關(guān)鍵字調(diào)用類(lèi)的構(gòu)造函數(shù)完成類(lèi)的初始化工作。
(3)類(lèi)成員
類(lèi)成員分為兩大類(lèi)。
類(lèi)本身聲明的成員和從基類(lèi)繼承來(lái)的成員。
類(lèi)成員包括函數(shù)成員和數(shù)據(jù)成員。
聲明一個(gè)含有靜態(tài)成員和一個(gè)實(shí)例成員的Student類(lèi)

using System;
class Student
{int SNO;	// 實(shí)例成員
	static int count;	// 靜態(tài)成員
	public Student(int s)
	{SNO = s;
		Count++;
	}
	public void display()
	{	}
	public static void Main()
	{Student s1 = new Student(12);
		s1.display();
	}
}
在上例子中,每生成一個(gè)學(xué)生實(shí)例,靜態(tài)成員count就自動(dòng)增一。

(4)構(gòu)造函數(shù)和析構(gòu)函數(shù)
構(gòu)造函數(shù)是特殊的成員函數(shù),主要用于為對(duì)象分配空間,完成初始化工作。構(gòu)造函數(shù)的特殊性表現(xiàn)在以下幾個(gè)方面。
構(gòu)造函數(shù)的名字必須與類(lèi)名相同
構(gòu)造函數(shù)可以帶參數(shù),但沒(méi)有返回值
構(gòu)造函數(shù)在對(duì)象定義時(shí)被自動(dòng)調(diào)用

使用構(gòu)造函數(shù)和析構(gòu)函數(shù):

using System;
class Complex
{double imag,real;
	public Complex(){}	// 無(wú)參數(shù)構(gòu)造函數(shù)
	public Complex(double r,double i)
	{imag = i;
		real = r;
	}
	~Complex(){}	// 析構(gòu)函數(shù)
}

(5)方法
方法是表現(xiàn)類(lèi)或?qū)ο笮袨榈某蓡T函數(shù),用于把程序分解為小的單元。
方法聲明
方法聲明的格式:

屬性集 方法修飾符 返回類(lèi)型 方法名(形參列表){方法體}
方法的修飾符:new public void ......
方法參數(shù):值參數(shù)、引用參數(shù)、輸出參數(shù)和參數(shù)數(shù)組
使用參數(shù):
class TestValue
{static void Swap(int a ,int b)
	{int t;
		t=a;
		a=b;
		b=t;
	}
	static void Main()
	{int x=10,y=20;
		Console.WriteLine("x={0},y={1}",x,y);
		Swap(x,y);
		Console.WriteLine("x={0},y={1}",x,y);
	}
}
輸出結(jié)果為 x=10,y=20
x=10,y=20;
示例中的函數(shù)Swap有兩個(gè)值參數(shù)a和b,在函數(shù)內(nèi)交換了a和b的值并不影響原自變量x和y的值。

引用參數(shù)
用ref修飾符聲明的參數(shù)為引用參數(shù)。
使用引用參數(shù)

class TestValue
{static void Swap(ref int a , ref int b)
	{int t;
		t = a;
		a = b;
		b = t;
	}
	static void Main()
	{int x=10,y=20;
		Console.WriteLine("x={0},y={1}",x,y);
		Swap(ref x,ref y);
		Console.WriteLine("x={0},y={1}",x,y);
	}
}
輸出結(jié)果為
x=10,y=20
x=20,y=10
示例中的函數(shù)Swap有兩個(gè)引用參數(shù)a和b,在函數(shù)內(nèi)交換a和b的值同時(shí)也交換了原自變量x和y的值。

輸出參數(shù)
用out修飾符定義的參數(shù)稱(chēng)為輸出參數(shù)。如果希望函數(shù)返回多個(gè)值,可使用輸出參數(shù)。

class TestOut
{static int OutMultiValue(int a,out char b)
	{b=(char) a;
		return 0;
	}
	static void Main()
	{int t = 65,r;
		char m;
		r=OutMultiValue(t,m);
		Console.WriteLine("r={0},m={1}",r,m);
	}
}
輸出結(jié)果為  r = 0	m = A

參數(shù)數(shù)組
用params修飾符聲明的變量稱(chēng)為參數(shù)數(shù)組,它允許向函數(shù)傳遞個(gè)數(shù)變化的參數(shù)。
使用參數(shù)數(shù)組:

using System;
class TestParams
{static void MultiParams(params int[] var)
	{for(int I=0;Iint[] arr = {10,20,30};
		MultiParams(arr);
		MultiParams(100,200);
		MultiParams();
	}
}

靜態(tài)方法和實(shí)例方法
用static修飾符 聲明的方法為靜態(tài)方法,未用static修飾符聲明的方法為實(shí)例方法。
靜態(tài)方法不對(duì)特定實(shí)例進(jìn)行操作,不與實(shí)例相關(guān)聯(lián),它屬于類(lèi)。因?yàn)殪o態(tài)方法和類(lèi)相關(guān)聯(lián),所以調(diào)用靜態(tài)方法不需要?jiǎng)?chuàng)建類(lèi)實(shí)例。要調(diào)用靜態(tài)方法,只需要類(lèi)名和方法名。靜態(tài)方法只能訪(fǎng)問(wèn)類(lèi)中的靜態(tài)成員,訪(fǎng)問(wèn)非靜態(tài)成員是錯(cuò)誤的。
實(shí)例方法對(duì)類(lèi)的某個(gè)給定的實(shí)例進(jìn)行操作,而且可以用this來(lái)訪(fǎng)問(wèn)該實(shí)例。它屬于實(shí)例對(duì)象。實(shí)例方法可以訪(fǎng)問(wèn)類(lèi)中的任何成員。

using System;
class TestMethod
{static int x;	// 靜態(tài)數(shù)據(jù)成員
	int y;			// 非靜態(tài)數(shù)據(jù)成員
	static void A()
	{x=10;	// 正確,在靜態(tài)方法中訪(fǎng)問(wèn)靜態(tài)成員
		y=20;	// 錯(cuò)誤,在靜態(tài)方法中訪(fǎng)問(wèn)非靜態(tài)成員
	}
	void B()
	{x=10;	// 正確,在實(shí)例方法中訪(fǎng)問(wèn)靜態(tài)成員
		y=20;	// 正確,在實(shí)例方法中訪(fǎng)問(wèn)非靜態(tài)成員
	}
	static void Main()
	{TestMethod t = new TestMethod();
		TestMethod.A();		// 使用類(lèi)名調(diào)用靜態(tài)方法
		t.B();				// 使用實(shí)例調(diào)用實(shí)例方法
	}
}

方法重載
方法重載允許一個(gè)類(lèi)中有同名的方法存在,即一個(gè)類(lèi)中可以有兩個(gè)以上的方法取相同的名字。為了區(qū)分這些同名的方法,要求方法有不同的參數(shù),要么參數(shù)個(gè)數(shù)不同,要么參數(shù)類(lèi)型不同。
使用方法重載:

using System;
class TestMethod
{int square(int x)
	{return x*x;
	}
	double square(double x)
	{return x*x;
	}
	decimal square(decimal x)
	{return x*x;
	}
	static void Main()
	{TestMethod t = new TestMethod();
		Console.WriteLine("The square is {0},{1},{2}",t.square(10),......)
	}
}
該類(lèi)有三個(gè)重載函數(shù)square,用于計(jì)算int、double、decimal類(lèi)型數(shù)的平方。三個(gè)函數(shù)的區(qū)別在于參數(shù)類(lèi)型不同。

操作符重載
操作符重載可以對(duì)C# 中已有的操作符賦予新的功能
重載Point類(lèi)的 “++” 和 "+"操作符

using System;
class Point(int a,int b)
{private int x,y;
	public Point(int a ,int b)
	{x=a;
		y=b;
	}
	//操作符"++"重載
	public static Point operator ++(Point p)
	{p.x ++;
		p.y ++;
		return p;
	}	
	public void Display()
	{Console.WriteLine("Point.x={0},Point.y={1}",x,y);
	}
	// 操作符 "+" 重載
	public static Point operator +(Point p1,Point p2)
	{Point p = new Point(0,0);
		p.x = p1.x + p2.x;
		p.y = p1.y + p2.y;
		return p;
	}
	static void Main(string[] args)
	{Point a = new Point(10,20);
		Point b = new Point(30,40);
		a = a+b;
		a.Display();
		a++;
		a.Display();
	}
}
程序輸出結(jié)果: Point.x=40,Point.y=60	Point.x=41,Point.y=61
程序中分別對(duì)一元運(yùn)算符“++”和二元運(yùn)算符“+”進(jìn)行了重載。分別完成點(diǎn)的坐標(biāo)值自增一和兩個(gè)點(diǎn)坐標(biāo)相加的功能。

this關(guān)鍵字
引用類(lèi)的當(dāng)前實(shí)例,成員通過(guò)this關(guān)鍵字可以知道自己屬于哪個(gè)實(shí)例。this關(guān)鍵字是一個(gè)隱含引用,它隱含于每個(gè)類(lèi)的成員函數(shù)中。但需要注意的是靜態(tài)成員函數(shù)沒(méi)有this指針。this關(guān)鍵字可用于從構(gòu)造函數(shù)、實(shí)例方法和實(shí)例訪(fǎng)問(wèn)器中訪(fǎng)問(wèn)成員。
以下是this的常用用途。

~ 限定被相似的名稱(chēng)隱藏的成員。例如:
public Employee(string name,string alias)
{this.name = name ;
	this.alias = alias;
}
~ 將對(duì)象作為參數(shù)傳遞到其他方法,例如:
CalcTax(this)
~ 聲明索引器,例如:
public int this [int param]
{get
	{return array[param];
	}
	set
	{array[param] = value;
	}
}

(6)字段與屬性
字段
字段表示與對(duì)象或類(lèi)相關(guān)聯(lián)的變量。字段包括靜態(tài)字段、實(shí)例字段和只讀字段。用static修飾符聲明的字段為靜態(tài)字段,與靜態(tài)變量相同,無(wú)論存在多少個(gè)類(lèi)實(shí)例,他們都共享一個(gè)靜態(tài)字段副本。
使用字段:

using System;
class Goods
{public double high;
	public readonly double width = 30;
	public static int count = 0;
	public Goods(double h,double w)
	{high = h;
		width = w;
		count ++;
	}
	static void Main(string[] args)
	{Goods y = new Goods(100,200);
		Console("high={0},width={1};count={2}",y.high,y.width,Goods.count);
		Goods z = new Goods(300,400);
		Console(...);
	}
}
輸出結(jié)果為:high=100,width=200,count=1
high=300,width=400,count=2

以上例子聲明了實(shí)例字段high,它的生命周期為類(lèi)實(shí)例生成到類(lèi)實(shí)例撤銷(xiāo)為止。靜態(tài)字段count,它的生命周期為類(lèi)的載入到類(lèi)的撤銷(xiāo)為止。只讀字段width,它的生命周期與實(shí)例字段相同。如果在類(lèi)Goods中聲明一個(gè)函數(shù):
public void setwidth(double w)
{width = w;
}
則會(huì)出現(xiàn)錯(cuò)誤,因?yàn)橹蛔x字段的值只能在聲明時(shí)和在構(gòu)造函數(shù)中改變。

屬性
屬性用于刻畫(huà)對(duì)象的特征或表示對(duì)象的狀態(tài),它提供對(duì)類(lèi)或?qū)ο笮再|(zhì)的訪(fǎng)問(wèn)。比如窗口標(biāo)題、窗口位置、客戶(hù)名稱(chēng)等,都可以作為屬性。屬性和字段不同,它不表示存儲(chǔ)位置,相反,屬性有訪(fǎng)問(wèn)器。
給屬性賦值時(shí)使用訪(fǎng)問(wèn)器set,set訪(fǎng)問(wèn)器始終使用value設(shè)置屬性的值。獲取屬性值時(shí)使用訪(fǎng)問(wèn)器get,get訪(fǎng)問(wèn)器通過(guò)return返回屬性的值。在訪(fǎng)問(wèn)聲明中,如果只有g(shù)et訪(fǎng)問(wèn)器,表示是只讀屬性;如果只有set訪(fǎng)問(wèn)器,表示是只寫(xiě)屬性。
使用屬性:

class Window
{private double m width = 30;
	public double width
	{get
		{	return m width;
		}
		set
		{	m width = value;
		}
	}
	static void Main(string[] args)
	{Window y = new Window();
		y.width=200;
		Console("{0}",y.width);
	}
}

(7)繼承
繼承是面向?qū)ο蟪绦蛟O(shè)計(jì)的一個(gè)重要特征,它允許在既有類(lèi)的基礎(chǔ)上創(chuàng)建新類(lèi),新類(lèi)從既有類(lèi)中繼承成員,而且可以重新定義或加進(jìn)新的成員,從而形成類(lèi)的層次或等級(jí)。一般稱(chēng)為繼承的類(lèi)為基類(lèi)或父類(lèi),而稱(chēng)繼承后產(chǎn)生的類(lèi)為子類(lèi)。
C#繼承的重要性質(zhì):
1、C#只允許單繼承,即派生類(lèi)只能有一個(gè)基類(lèi)。
2、C#的繼承是可傳遞的,如果C從B派生,而B(niǎo)從A派生,那么C就會(huì)即繼承在B中聲明的成員,又繼承在A中聲明的成員;
3、派生類(lèi)擴(kuò)展它的直接基類(lèi),即派生類(lèi)可以添加新的成員,但不能刪除從基類(lèi)繼承的成員
4、構(gòu)造函數(shù)和析構(gòu)函數(shù)不能被繼承
5、派生類(lèi)可以隱藏基類(lèi)的成員,如果在派生類(lèi)中聲明了與基類(lèi)同名的新成員時(shí),基類(lèi)的該成員在派生類(lèi)中就不能被訪(fǎng)問(wèn)到。
派生類(lèi)的聲明:
屬性類(lèi)修飾符class類(lèi)名:基類(lèi){類(lèi)體}
在類(lèi)聲明中,通過(guò)在類(lèi)名的后面加上冒號(hào)和基類(lèi)名表示繼承。

public class Employee:Person
{private string department;
	private decimal salary;
	public Employee(string n , int a ,long i ,string d,decimal s):base(n,a,i)
	{department=d;
		salary = s;
	}
	public override void Display()
	{base.Display();
	}
新類(lèi)繼承了基類(lèi)的成員name、age、ID,并添加了新的成員department和salary,重載了Display成員函數(shù),讓Display成員函數(shù)不但顯示員工的姓名、年齡和身份證號(hào),而且顯示員工所屬的部門(mén)和薪水。

base關(guān)鍵字

base關(guān)鍵字用于從派生類(lèi)中訪(fǎng)問(wèn)基類(lèi)的成員,它有兩種基本用法:
指定創(chuàng)建派生類(lèi)實(shí)例時(shí)應(yīng)調(diào)用的基類(lèi)構(gòu)造函數(shù),用于調(diào)用基類(lèi)的構(gòu)造函數(shù)完成對(duì)基類(lèi)成員的初始化工作;
在派生類(lèi)中訪(fǎng)問(wèn)基類(lèi)成員。
如上述例子在創(chuàng)建派生類(lèi)Employee實(shí)例時(shí),使用base調(diào)用其基類(lèi)Person的構(gòu)造函數(shù);在派生類(lèi)Employee的display方法中,使用了base關(guān)鍵字調(diào)用基類(lèi)的Display方法。

后面的接口 、委托什么的感覺(jué)看起來(lái)好吃力,因?yàn)槠綍r(shí)寫(xiě)代碼用的也比較少,不能準(zhǔn)確的理解其的意義。先擱置起來(lái)吧,接下來(lái)學(xué)習(xí)第二章。

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧


當(dāng)前文章:《C#:二維三維圖形繪制》閱讀記錄-創(chuàng)新互聯(lián)
新聞來(lái)源:http://weahome.cn/article/dhsopp.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部