' Visual Basic .NET Document
Option Strict On
Imports System.Collections.Generic
Imports System.Runtime.CompilerServices
'
Module Example
Public Sub Main()
Dim dbl As Double = 0.0 - Double.Epsilon
Console.WriteLine(NumericLib.NearZero(dbl))
Dim s As String = "war and peace"
Console.WriteLine(s.ToTitleCase())
End Sub
End Module
' The example displays the following output:
' True
' War and Peace
'
Public Module StringLib
Private exclusions As List(Of String)
Sub New()
Dim words() As String = {"a", "an", "and", "of", "the"}
exclusions = New List(Of String)
exclusions.AddRange(words)
End Sub
_
Public Function ToTitleCase(title As String) As String
Dim words() As String = title.Split()
Dim result As String = String.Empty
For ctr As Integer = 0 To words.Length - 1
Dim word As String = words(ctr)
If ctr = 0 OrElse Not exclusions.Contains(word.ToLower()) Then
result += word.Substring(0, 1).ToUpper() + _
word.Substring(1).ToLower()
Else
result += word.ToLower()
End If
If ctr <= words.Length - 1 Then
result += " "
End If
Next
Return result
End Function
End Module
Public Module NumericLib
_
Public Function IsEven(number As IConvertible) As Boolean
If TypeOf (number) Is Byte OrElse
TypeOf (number) Is SByte OrElse
TypeOf (number) Is Int16 OrElse
TypeOf (number) Is UInt16 OrElse
TypeOf (number) Is Int32 OrElse
TypeOf (number) Is UInt32 OrElse
TypeOf (number) Is Int64 Then
Return CLng(number) Mod 2 = 0
ElseIf TypeOf (number) Is UInt64 Then
return CULng(number) Mod 2 = 0
Else
Throw New NotSupportedException("IsEven called for a non-integer value.")
End If
End Function
Public Function NearZero(number As Double) As Boolean
Return number < .00001
End Function
End Module