梓囚徒貧圭�鮗� ○ 賜 ★ 辛酔堀貧和鍬匈��梓囚徒貧議 Enter 囚辛指欺云慕朕村匈��梓囚徒貧圭�鮗� ● 辛指欺云匈競何��
!!!!隆堋響頼��紗秘慕禰厮宴和肝写偬堋響��
By default�察�everything in is an object with a few basic properties and methods。 Four basic
methods are associated with every object�此�
o Equals�┌��此�Verifies the equality of two objects ��see Figure 3´3��。
o GetHashCode�┌��此�Retrieves a unique number describing the object ��see Figure 3´4��。 Two
objects with the same contents will return the same hash code。
o GetType�┌��此�Retrieves the metadata associated with an object ��see Figure 3´5��。 Allows the
program to play ^Are you a 。 。 。 �拭院�to dynamically determine which methods and proper
ties a type has。 It is used by IntelliSense to display a list box。
o ToString�┌��此�Converts the contents of the type into a string ��see Figure 3´6��。 Note that the
default CLR ToString�┌� implementations work only for value types。
´´´´´´´´´´´´´´´´´´´´´´Page 79´´´´´´´´´´´´´´´´´´´´´´´
CH AP T E R 3 * L E AR N IN G AB O U T ST R I N G M A N I PU L A TI O N S 57
Calling Equals�┌� asks if variable
a has a value of 2
Dim a As Integer = 2
If a。Equals��2�� Then
Console。WriteLine�─�2 equals 2�察�as it should be;��
End If
This code will always be
called because 2 equals 2
Figure 3´3。 Equals�┌� is used to verify the equality of two objects。
Don¨t think of a�察�b�察�and c as values associated
with a variable。 Think of a�察�b�察�and c as having
contents associated with the variables。 The
contents of a and b match�察�the contents of c do
not match the contents of a and b。
Dim a As Integer = 2 The contents of a and b are
Dim b As Integer = 2 identical�察�thus�察�GetHashCode�┌�
Dim c As Integer = 3
returns the same number
If a。GetHashCode�┌� = b。GetHashCode�┌� Then
Console。WriteLine�─�2 equals 2�察�as it should be;��
End If
If c。GetHashCode�┌� b。GetHashCode�┌� Then
Console。WriteLine�─�3 does not equal 2�察�as it should be;��
End If
The contents of c and b are not
equal�察�so GetHashCode�┌� will
return two different numbers
Figure 3´4。 GetHashCode�┌� retrieves a number describing the object。
The four basic methods can be called on every variable that you declare。 You will use
ToString�┌� when debugging or inspecting the state of an object instance during runtime。
ToString�┌� returns a human´readable string that contains the state of the object instance。
You might use the GetType�┌� method occasionally�察�but your IDE and other tools will use
it all the time。 Using GetType�┌��察�you have the ability to figure out the capabilities of a variable
during the execution of a program。 In technical terms�察�GetType�┌� returns the formal metadata
description of the type。
From reading the description of Equals�┌� and GetHashCode�┌��察�you would get the impression
that these two functions serve the same purpose。 However�察�this is not the case。
´´´´´´´´´´´´´´´´´´´´´´Page 80´´´´´´´´´´´´´´´´´´´´´´´
58 CH AP T E R 3 * L E A R N IN G AB OU T ST R I N G M A N I P U L AT IO N S
You know that a is a value type
��as explained in Chapter 1��。
However�察�a program does not By calling GetType�┌� and
know that it is a value type。 then IsValueType�察�the
program is dynamically
Dim a As Integer = 1 asking if a is a value type
If a。GetType�┌�。IsValueType = True Then
Console。WriteLine�─�a is a value type;��
End If
This code will always be called
because a is always a value type
Figure 3´5。 GetType�┌� retrieves the metadata associated with an object。
Variable a contains the value
3 as a binary value Calling ToString�┌� will convert the
binary´based value into a
character´based value
Dim a As Integer = 3
Dim aAsAString As String = a。ToString�┌�
If aAsAString = ;3; Then
Console。WriteLine�─�3 has been converted into a string;��
End If
The = sign is another way ^3 ̄ always equals ^3 ̄
to test if ^3 ̄ equals ^3 ̄ so this code runs
Figure 3´6。 ToString�┌� converts the contents of the type into a string。
Let¨s say you¨re moving and you¨ve packed two boxes containing kitchen items。 Both boxes
contain five red dishes�察�three silver forks�察�two copper knives�察�and two wineglasses。 If you pare
the boxes�察�both Equals�┌� and GetHashCode�┌� will return equality�察�indicating the boxes contain
the same number and color of items。 It is important to understand that even though the two
boxes are unique instances containing unique articles�察�their contents are identical。 When you
pare object instances using Equals�┌� or GetHashCode�┌��察�you are paring the metadata
and value attributes�察�not the unique instances。
Now imagine the situation where one of the boxes has wineglasses from IKEA and the other
has wineglasses from Pier 1。 If you use the Equals�┌� method to pare the boxes�察�it