- 定義在哪都可以
- 不可定義在namespace外(類別定義一定是全域性宣告)
- 不能放在函式中
- ex.
----------------------------------------------------
namespace ch6_2
{
class c1
{
}
class c2
{
static void Main(string[] args)
{
}
}
}
------------------------------------------------------
2.命名空間(namespace):
- 有效的將眾多物件根據他的功用可有效的分類
- ex.
----------------------------------------------------
namespace ch6_3
{
class c1
{
}
}
namespace ch6_4
{
class c2
{
}
}
namespace ch6_5
{
class c3
{
static void Main(string[] args)
{
}
}
}
----------------------------------------------------------
3.如何建立屬性:
- 直接使用public變數:
- ex.
--------------------------------------------------------
class Car
{
public int Speed;
}
class Program
{
static void Main(string[] args)
{
Car Benz=new Car;
Benz.Speed=500;
}
}
---------------------------------------------------------
缺點:Speed值會被改變,例如允許負數
- 使用get 及 set存取子:
- 可建立唯讀與唯寫屬性
- ex.
--------------------------------------------------------
class Car
{
private int Speed;
public int GetSpeed()
{
return Speed;
}
public void SetSpeed(int vSpeed)
{
if(vSpeed<0)vSpeed=0;
if(vSpeed>200)vSpeed=200;
Speed=vSpeed;
}
}
class Program
{
static void Main(string[] args)
{
Car Benz=new Car;
Benz.SetSpeed(500);//結果因為超過200所以會顯示結果為200
}
}
--------------------------------------------------------
4.如何建立事件:
- 建立 delegate 委派型別
- 可以指向方法的參考指標,delegate 型別可以呼叫物件的方法,已傳回特定資訊
- ex.
---------------------------------------------------
delegate void EventDanger(int vSpeed);
--------------------------------------------------- - 建立 event敘述宣告事件
- public event DangerEvent Danger;
- 名稱為 Danger 屬於 DangerEvent delegate 型別
- 如何觸動事件?
- if(Danger!=null)Danger(value);
- 如何定義事件?
- 在button內
- 指定物件發生事件所要處理的方法:
- ex.
----------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleEvent1
{
delegate void DangerEvent(int vSpeed); // 宣告delegate型別
class Car
{
private int _speed;
public event DangerEvent Danger; // 宣告事件
public int Speed // 定義 Speed 屬性
{
get
{
return _speed;
}
set
{
if (value > 200)
{
if (Danger != null) Danger(value); // 啟動事件
}
_speed = value;
}
}
}
class Program
{
static void TooFast(int vSpeed)
{
Console.WriteLine("你的目前的速度是 {0},超過 200,請減速 !!!", vSpeed);
}
static void Main(string[] args)
{
Car Benz = new Car();
// 指定 Danger 事件由 TooFast 方法來處理
Benz.Danger += new DangerEvent(TooFast);
Benz.Speed = 300;
Console.Read();
}
}
}
-------------------------------------------------------------------------------------------
5.堆疊
參閱:click
沒有留言:
張貼留言