免費論壇 繁體 | 簡體
Sclub交友聊天~加入聊天室當版主
分享
返回列表 回復 發帖

觀念解析

使用特性(Attribute)
----------------------------------------------------------------------------------------------
使用存取修飾詞來達到封裝的目的
•Private:只允許在類別中存取之
•Protected:只允許在類別或子類別中存取之
•Friend:只允許在相同專案中存取之
•ProtectedFriend:只允許在類別、子類別或相同專案中存取之
•Public:任何地方均可存取之
----------------------------------------------------------------------------------------------
匯入命名空間
•在程式碼檔上方使用Imports關鍵字匯入要使用的命名空間
Dim c As NS1.Class1
ImportsNS1ImportsOther = NS2'命名空間的別名(Alias)
Dim c1 As Class1
Dim c2 As Other.Class1
----------------------------------------------------------------------------------------------
部分類別(Partial Class)允許同一個類別分割成多個檔案。主要類別的宣告如同一般類別,例如:MyName類別宣告,如下所示:
Class MyName
    Private FirstName, LastName As String
    Public Sub New(ByVal f As String, _
                            ByVal l As String)
        FirstName = f
        LastName = l
    End Sub
    Public Sub PrintName()
        ……
    End Sub
End Class

在部分類別需要使用Partial關鍵字進行類別宣告,如下所示:
Partial Class MyName
    Public Sub PrintFirstName()
        Console.WriteLine("名: " & FirstName)
    End Sub
End Class
上述程式碼是部分類別宣告,類別名稱與主要類別相同,只是新增PrintFirstName()成員方法。請注意!雖然原始程式碼分割成多個檔案,但在編譯時,仍然是組合成完整類別後才進行編譯。
----------------------------------------------------------------------------------------------
當我們建立子類別繼承父類別來擴充其功能時,對於父類別的方法,如果希望保留方法名稱,只是更改其功能,在父類別的方法可以使用Overridable關鍵字來宣告,表示方法可以覆寫,如下所示:
Public Class TextLine
    Public Line As String
    ' 建構子(1)
    …………
    ' 可覆寫的方法
    Public Overridable Sub ShowText()
        Console.WriteLine(LCase(Line))
    End Sub
End Class
使用Overrides關鍵字來覆寫方法,如下所示:
Public Class MyLine
    Inherits TextLine
    ' 建構子
    …………
    ' 覆寫方法
    Public NotOverridable Overrides Sub ShowText()
        Console.WriteLine(MyBase.Line)
    End Sub
End Class
NotOverridable關鍵字表示此方法不能再被子類別覆寫。
----------------------------------------------------------------------------------------------
抽象類別(Abstract Classes)並不能建立物件,只能繼承抽象類別來宣告子類別。Visual Basic抽象類別是使用MustInherit關鍵字來宣告類別,內含MustOverride關鍵字宣告的抽象方法。
抽象方法只是原型宣告,其實作程式碼是位在子類別,而且繼承的子類別一定要實作抽象方法。

介面如同模組~因此一個類別可以由多個模組組成(也就是繼承多個"介面")
----------------------------------------------------------------------------------------------
過載運算子是使用Operator/End Operator程式區塊建立的運算子方法(Operator Method) ,例如:加法的運算子方法,如下所示:
Public Shared Operator +(ByVal s1 As Sales, ByVal s2 As Sales) As Sales
    Dim Temp As New Sales(0.0, 0)
    Temp.Earnings = s1.Earnings + s2.Earnings
    Temp.SoldedItems = s1.SoldedItems + s2.SoldedItems
    Return Temp
End Operator

----------------------------------------------------------------------------------------------
其實System.Double 是屬於floating point type。
http://csharpindepth.com/Articles/General/FloatingPoint.aspx
Double 0.7 其實是 0.6999999999999999555910790149937383830547332763671875
如果要準確,請用System.Decimal
返回列表