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> ......
//ÒÔÏÂÀ´×Ô:http://msdn.microsoft.com/zh-cn/library/sf985hc5.aspx
abstract£¨C# ²Î¿¼£©
¸üУº2007 Äê 11 ÔÂ
abstract ÐÞÊηû¿ÉÒÔºÍÀà¡¢·½·¨¡¢ÊôÐÔ¡¢Ë÷ÒýÆ÷¼°Ê¼þÒ»ÆðʹÓá£ÔÚÀàÉùÃ÷ÖÐʹÓà abstract ÐÞÊηûÒÔָʾij¸öÀàÖ»ÄÜÊÇÆäËûÀàµÄ»ùÀà¡£±ê¼ÇΪ³éÏó»ò°üº¬ÔÚ³éÏóÀàÖеijÉÔ±±ØÐëͨ¹ý´Ó³éÏóÀàÅÉÉúµÄÀàÀ´ÊµÏÖ¡£
ʾÀý ......
/// <summary>
/// ±È½ÏÁ½·ùͼƬÊÇ·ñÒ»Ö£¨Ê¹ÓÃMarshal.ReadByte·½Ê½£©
/// </summary>
/// <param name="bitmap1">ͼƬ1</param>
/// <param name="bitmap2">ͼƬ2</param>
/// <returns>Èç¹ûÁ½·ùͼƬÏàͬ£¬·µ»Ø0£»Èç¹ûͼƬ1СÓÚͼƬ2£¬·µ»ØÐ¡ÓÚ0µÄÖµ£»Èç¹ûͼƬ1´óÓÚÍ¼Æ ......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace ½«Ã¶¾Ù×÷Ϊ¼üÖµµÄÐÎʽ´æ´¢
{
enum Myenum
{
First=3,
Second ......