關(guān)于=的重載
在某本參考書上看到 = 符號是可以重載的,求大神幫忙看一下這段代碼
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Test
{
? ?
? ? class Program
? ? {
? ? ? ? static void Main(string []args)
? ? ? ? {
? ? ? ? ? ? EqualClass equalstr = "重載“=”運算符";
? ? ? ? ? ? string str = equalstr;
? ? ? ? ? ? Console.Write(str);
? ? ? ? ? ? Console.Read();
? ? ? ? }
? ? ? ? class EqualClass
? ? ? ? {
? ? ? ? ? ? private string _str;
? ? ? ? ? ? private EqualClass(string str)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? this._str = str;
? ? ? ? ? ? }
? ? ? ? ? ? public static implicit operator EqualClass(string str)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? return new EqualClass(str);
? ? ? ? ? ? }
? ? ? ? ? ? public static implicit operator string(EqualClass mystr)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? return mystr._str;
? ? ? ? ? ? }
? ? ? ? }
? ? }
}
2019-03-18
這不是前面剛講的隱式類型轉(zhuǎn)換嗎,怎么變成重載'='號了
2018-06-02
?隱式轉(zhuǎn)換
? ? public static implicit operator EqualClass(string str)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? return new EqualClass(str);? ? //這不是返回 重新創(chuàng)建了一個新對象去重載 ‘=’,看代碼好像是符合邏輯。。
? ? ? ? ? ? }