วันจันทร์ที่ 8 กันยายน พ.ศ. 2551

ทดสอบส่ง Wiki

== วันที่ 8 กันยา 2551 เช้า ==
จดคำบรรยาย โดย ฐิติพงศ์ สำราญวานิช

=== Set Property ของ Master Page ===
* ตัวอย่าง การ เซ็ต Propert ของ Master Page
* และ ให้เซ็ตค่า เฉพาะ โหลดครั้งแรก

If Not Me.IsPostBack Then
Me.Title = "Sign Up"
CType(Me.Master.FindControl("lbHeader"), Label).Text = "Sign Up"
End If


=== Me.IsPostBack ===
* และ ให้เซ็ตค่า เฉพาะ โหลดครั้งแร
* ถ้ามี user กดปุ่ม จะไม่ set ค่า , ไม่เข้า If

If Not Me.IsPostBack Then
...
End If


=== Partial ===
แยกแบ่งระหว่าง Designer กับ Source Code จริงๆที่เราเขียน
ที่ GEnerate ไม่ต้องแตะต้อง

=== Namespace ===
เช่น

เป็นกาจัดหมวดหมู่ย่อยๆลงไป เพื่อเรียกใช้ง่าย
Public Partial Class Form1UI
Inherites System.Web.UI.Page


=== Sub , Function ===
เรียกใน VB.NET เรียก Method

=== Type Object ===
* เป็น BaseClass ของ OOP
* ทุกๆตัว จะ Inherit มาจาก Object

=== Event Handler ===

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
...
End Sub

จะเห็นว่า Handles Me.Load นั่นคือ ตัวที่ระบุว่า Method นี้ รองรับ Event Load


=== การส่งผ่าน Parameter แบบ Object ของ Object ===

VB.NET เป็น StrongType ต้องระบุ Type
เวลาเรา Inherit จาก Class A ไปเป็น B หรือจาก B ไปเ็ป็น C

ถ้า TypeA Inherit เป็น TypeB
ถ้า TypeB Inherit เป็น TypeC
ถ้า TypeA มี 3 Method , TypeB มี 7 Method
ถ้า Dim a As TypeA แล้ว a จะเก็บ Object ของ TypeB , TypeC ได้
เช่น Dim b As TypeB
a = b ได้ ( แต่ b = a ไม่ได้ )
เป็นเรื่องของ Polymorphism

ข้อมูลนั้นจริงๆ จะเป็น Object TypeB ที่มี 7 Method
แต่ Interface ภายนอกจะเป็น เห็นแค่ Method ของ TypeA คือเห็นแค่ 3 Method
ไม่สามารถ มองเห็น Method ที่เพิ่มมาของ TypeB ได้

ใช้ a.MethodOfTypeB ไม่ได้
แต่ใช้
a.MethodOfTypeA ได้

การแปลงกลับไปเป็น TypeB ทำโดย
Dim bx As TypeB
bx = CType(a,TypeB) แปลงกลับ ทำให้ bx มี 7 Method เหมือนเดิม ได้
แล้วจะใช้ bx.MethodOfTypeB ได้

เป็นการเปลี่ยน Interface หรือเหมือนกับ เปลี่ยนกรอบ

ถ้า Object จริงๆเป็น a แล้วจะเปลี่ยนเป็น เป็น B อย่างนี้ไม่ได้




=== สิ่งที่ FindControl Method Return ค่ามา มี Typeเป็น อะไร ===

ทุก Web Control จะ Inherit มาจาก Class เดียวกัน ชื่อว่า
System.Web.UI.Control
แต่การจะ Cast เป็น อะไรต้อง รู้ Typeจริงๆของมัน

เช่น Object เป็น label และ Cast เป็น TextBox จะ Error ขณะรันทาม

NOTE : น่าจะเรียกว่า Late-Binding


=== Sender Parameter ===

* Sender As Object

เราต้องรู้ เองว่า Sender มี Type เป็นอะไร
เพื่อจะ Casting เพื่อเปลี่ยน เพื่อให้เห็น Method มากขึ้น

=== Type Casting ===

ใน OOP การเีปลี่ยน Type เรียกว่า Type Casting ปกติไม่เรียก Convert
แต่ .NET ใช้ คำว่า Convert

เรามักใช้ Casting เยอะ



=== Page Load , Master , Content ===
* Page Load จะทำทั้งคู่
* หน้า Content จะทำก่อน Master จะทำทีหลัง
* ทดลองโดยใช้ Page Break ใน Debug
* ดังนั้นหากต้องการ ให้ทุก หน้าแสดง ชื่อ Application เหมือนกัน จึงทำโดย ใส่โค้ด ดังนี้ ใน Page_Load ของ Master Page


Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Page.Title = "ระบบงาน ABC :" & Page.Title
End Sub

ไม่มีความคิดเห็น: