C#ÖеÄ==,!=µÈ·ûºÅÖØÔØ£¬ÒÔ¼°ÖØÔصȺŲÙ×÷
ͨ¹ýÒ»¸öʵ¼ÊµÄÀý×ÓÀ´½éÉÜ¡£ÆäÖÐÖØÔØ==£¬!=,Equal,GetHashCodeº¯Êý¡£
public class Record
{
public string[] arr = null;
public bool hasEqual = false;
//ÖØÔØÒ»¸öϱêÔËËã·ûºÅ
public string this[int index]
{
get
{
return arr[index];
}
set
{
arr[index] = value;
}
}
public override int GetHashCode()
{
// ÔÚÕâÀïʹÓÃ×Ö·û´®Êý×éµÄhashcode£¬±ÜÃâ×Ô¼ºÍê³ÉÒ»¸öËã·¨
return arr.GetHashCode();
}
public Record(int count)
{
if (count < 1)
{
throw new Exception("Êý×éµÄ³¤¶È²»ÄÜСÓÚ1");
}
arr = new string[count];
}
public static bool operator ==(Record rec1, Record rec2)
{
//×¢ÒâÎÒÃǵ÷ÓÃEqualsÀ´ÅжÏÊÇ·ñÏàµÈ¡£¶ø²»ÊÇÔÚ×Ô¼ºµÄº¯ÊýÖÐÅС¢¶Ï¡£ÕâÊÇÒòΪÈç¹ûÔÚ×Ô¼ºµÄº¯ÊýÖÐÅжϡ£±ÈÈçÓÐrec2=nullµÄÇé¿ö¡£Èç¹ûÊÇÕâÖÖÇé¿ö¡£ÎÒÃÇÒªÅжÏif(rec2==null) {…}¡£ÆäÖÐrec2==nullÒ²Êǵ÷ÓÃÒ»¸öµÈºÅÔËËã·û£¬ÕâÀïÃæÓÐÒ»¸öµÝ¹éµÄ¹ý³Ì£¬Ôì³ÉÁËËÀÑ»·¡£
return Object.Equals(rec1, rec2);
}
public static bool operator !=(Record rec1, Record rec2)
{
return !Object.Equals(rec1, rec2);
}
public override bool Equals(object obj)
{
//ÅжÏÓëÖ®±È½ÏµÄÀàÐÍÊÇ·ñΪnull¡£ÕâÑù²»»áÔì³ÉµÝ¹éµÄÇé¿ö
if (obj == null)
return false;
if (GetType() != obj.GetType())
return false;
Record rec = (Record)obj;
int count = rec.arr.Length;
for (int i = 0; i < count; i++)
{
if (this.arr[i] != rec.arr[i])
{
return false;
}
}
return true;
}
}
ÒÔÉϾÍÊǽéÉÜÖØÔØ==£¬!=,Equal,GetHashCodeµÄ·½·¨¡£µ«ÊÇÓеÄʱºòÎÒÃÇÐèÒªÖØÔØ = ²Ù×÷·û£¬À´·½±ãÎÒÃǽøÐд«µÝ£¬ÕâÔÚC++Àï¿ÉÒÔʹÓ÷ûºÅÖØÔØÀ´ÊµÏÖ£¬µ«ÊÇC#ÀïÃæ¾ÍÐв»Í¨ÁË£¬²»ÐÅÄã¿ÉÒÔÊÔÊÔ£¬±àÒëÆ÷»á±¨´íµÄ¡£C#ÀïʵÏÖÏàͬЧ¹ûʹÓõIJ¢²»ÊÇ¶Ô = ·ûºÅ²Ù×÷½øÐÐÖØÔØ£¬¶øÊÇͨ¹ýÒÔÏ·½·¨À´ÖØÔØ
ÔÀ´C++µÄ³ÌÐòÔ±Ò»¶¨»áдoperator=µÄ,µ«ÊÇÕâÔÚc#ÖÐÊÇ´íÎó
µÄ.
ÎÒÃÇ¿ÉÒÔͨ¹ýת»»À´ÊµÏÖÖØÔØµÈºÅµÄÄ¿µÄ.
c#ÖÐÓÐimplicitºÍexplicit¹Ø¼ü×Ö.¿ÉÒÔʵÏÖÒþʽºÍÏÔʾ
ת»»
ʾÀý:
class MyString
{
private string _str;
private MyString(string str)
{
this._str = str;
}
public static implicit operator MyString(string str)
{
Ïà¹ØÎĵµ£º
ÒÑÖªÓÐÒ»¸öXMLÎļþ£¨bookstore.xml£©ÈçÏ£º
<?xml version="1.0" encoding="gb2312"?>
<bookstore>
<book genre="fantasy" ISBN="2-3631-4">
<title>Oberon's Legacy</title>
<author>Corets, Eva</author>
<price>5.95</price> ......
C#»ñÈ¡×Ö·û´®µÄ³¤¶È
×÷Õߣºylclass À´Ô´£º²©¿ÍÔ° ·¢²¼Ê±¼ä£º2009-10-30 16:25 ÔĶÁ£º193 ´Î ÔÎÄÁ´½Ó [ÊÕ²Ø]
1¡¢ ʹÓÃg.MeasureString£¨£©»ñµÃ
ʹÓÃMeasureString²âÁ¿³öÀ´µÄ×Ö·û¿í¶È£¬×ÜÊDZÈʵ¼Ê¿í¶È´óһЩ£¬¶øÇÒËæ×Å×Ö·û ......
±¾ÕÂΪ½Ó¿Ú¿Î³ÌµÄ×ÛºÏÁ·Ï°¡£
±¾´ÎÁ·Ï°Õ¹Ê¾ÁËÒ»¸ö¼ò»¯µÄÒøÐÐÒµÎñÁ÷³Ì£¬ÌåÏÖÁËÒøÐкÍÓû§Êý¸ö½ÇÉ«µÄ¹ØÏµ¡£¿´ÏÂͼ£º
ÕË»§ÀࣨAccount£©¶ÔÏó´æ´¢ÔÚÊý¾Ý¿âÀࣨDatabase£©¶ÔÏóÖУ»¼ÆËã»ú£¨Computer£©Àà¶ÔÏóÁ¬½Óµ½Êý¾Ý¿âÀà¶ÔÏóÉÏ£»ÒøÐйñ̨£¨BankCounter£©Àà¶ÔÏóÓµÓÐһ̨¼ÆËã»ú¶ÔÏó×÷Ϊ˽ÓгÉÔ±£¬ÀûÓøöÔÏó¶ÔÊý¾Ý¿â½øÐвÙ×÷£»AT ......
IndexOf()
²éÕÒ×Ö´®ÖÐÖ¸¶¨×Ö·û»ò×Ö´®Ê״γöÏÖµÄλÖÃ,·µÊ×Ë÷ÒýÖµ£¬È磺
str1.IndexOf("×Ö")£» //²éÕÒ“×Ö”ÔÚstr1ÖеÄË÷ÒýÖµ£¨Î»Öã©
str1.IndexOf("×Ö´®")£»//²éÕÒ“×Ö´®”µÄµÚÒ»¸ö×Ö·ûÔÚstr1ÖеÄË÷ÒýÖµ£¨Î»Öã©
str1.IndexOf("×Ö",start,end)£»//´Óstr1µÚstart+1¸ö×Ö·ûÆð£¬²éÕÒend¸ö×Ö·û£¬²éÕ ......